次の procmail レシピがあるとします。
:0:
* ^Subject:.*viagra.*
* ^From:.*viagra.*
/dev/null
Procmail は、viagra から送信され、件名に viagra が含まれるメールのみを削除します。どちらかの一致が当てはまる場合にフィルターを適用することは可能ですか?
解決策では正規表現(regex1|regex2)
操作を使用しないことが望ましいですが、それが唯一の解決策である場合は、その旨を明記してください。
答え1
ほぼ完成です。正規表現をしっかりと理解することは、procmail レシピを成功させる上で大いに役立ちます。procmail は非常に柔軟ですが、その柔軟性は主に正規表現に依存しています。
:0:
* ^(From|Cc|To|Subject).*viagara.*
/dev/null
あるいは、パイプと改行エスケープを使用して、次の行にルールを続行することもできます (読みやすくするため)。あなたの例では、一致する必要がある新しい条件を作成していました。
:0:
* ^Subject:.*viagra.* |\
^From:.*viagra.*
/dev/null
答え2
2 つのレシピを使用します。それぞれが /dev/null に送られ、1 つは Subject に一致し、もう 1 つは From に一致します。最初に一致したものが優先されます。これは基本的に OR 演算子と同じです。reg1|reg2 アプローチでも機能しますが、2 つのレシピとして読み取る方が明確だと思います。