ひとりごと

新しい記事:[1354]  古い記事:[1352] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2004/12/02 (木)

・ procmail でどのレシピにマッチしたか知る方法

ひさしぶりの procmail ねた。

SpamAssassin がきわめて効果的に働いているのでいまいち存在感が薄くなった procmail なのですが、一日平均70通ほど捕捉するSpamAssassin網の目をかいくぐるものがあり、procmail で GB2312コードをゴミ箱行きに決め打ちすることによりさらに 5通/日 程度の spam除け効果があります。

さて、SpamAssassinの網の目をくぐりぬけたメールが多くなるとこれに対処するべく .procmailrc にレシピを記述するわけですが、あれこれ書いて長くなってくると、実際に網にかかったときにどれがマッチしたのかわかんなくなるのですね。平常時は問題ありませんが

という時にはちょっと困ることがあります。

という長すぎる前置きを経て本題。 .procmailrc に次のように書けばどの行でマッチしたか一目瞭然です。

PATH=/bin:/usr/bin:/usr/local/bin
SHELL=/bin/sh
MAILDIR=$HOME/Mail

:0H f
* ^Subject: \/.*
* ? echo "$MATCH" | nkf -Zme | grep '!.*広告.*!'
| formail -A "X-Procmail: ADV1"

:0H f
* ^Content-Type: .*GB2312
| formail -A "X-Procmail: JUNK1"

:0H f
* ^To: .*@relay[0-9]*.dti.ne.jp
* !^From: .*.dti.ad.jp
| formail -A "X-Procmail: JUNK2"

# 広告
:0H:
* ^X-Procmail: ADV
$MAILDIR/ad/.


# ゴミ
:0H:
* ^X-Procmail: JUNK
$MAILDIR/junk/.

こうすることにより網にかかった場合はメールのヘッダに 'X-Procmail: JUNK1' などの行が追加されるので判別しやすくなります。複数のレシピにかかった場合はたくさん追加されます(笑)。

[つっこみ]

新しい記事:[1354]  古い記事:[1352] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)