- Linux
- 2013-02-06 - 更新:2013-02-07
この記事は最終更新日から1年以上経過しています。
Procmailにてレベルを定義し振り分けをおこなう方法と
ORによる条件判定の方法。
LEVEL=2
レベル2のとき適用
:0 * $LEVEL ?? 2 { # 逆引きできないホストを経由したメールの場合 :0Hfw * ^Received: .*from.*unknown | formail -I "X-Spam-Flag: True" }
レベル2以下のとき適用
:0 * 9876543210^0 $LEVEL ?? 2 * 9876543210^0 $LEVEL ?? 1 { # 容量を60MBに制限 :0Hfw * > 60000000 | formail -I "X-Spam-Flag: True" # スパムフラグがTrueだったとき指定したディレクトリへ :0H * ? test -d $MAILDIR/spam * ^X-Spam-Flag: True $MAILDIR/spam/. }
9876543210^0
について
通常、ProcmailのレシピはANDとして処理されます。
9876543210^0
は実際にはスコアリングを使用するためのもので、
結果としてOR条件のようなものとして評価されるだけです。
または
:0 * ? test $LEVEL -le 2 { # 容量を60MBに制限 :0Hfw * > 60000000 | formail -I "X-Spam-Flag: True" # スパムフラグがTrueだったとき指定したディレクトリへ :0H * ? test -d $MAILDIR/spam * ^X-Spam-Flag: True $MAILDIR/spam/. }
test 数値1 -le 数値2
という書式で、数値1が数値2より小さいか同じ場合にTrueを返します。
2,818 views