Categories
SugiBlog ホームページ制作・システム開発

Procmail レシピTips

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を返します。

977 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*