「Procmail」でのスパムメール対策

このブログで公開しているメールアドレスに、
ダイレクトメールがだんだん増えてきました。

たまに、メールの本文がすべてアフィリエイトで埋まっている
というアホなメールを送ってくるヤツもいます(笑)
しかも、メールヘッダーを偽装しているため、
qmailbadmailfromでは弾けないものもあります。

参考URL:badmailfrom
によると、

badmailfromで指定できるメールアドレスは、メールソフトなどで表示される発信者("From: "フィールド)ではなく、エンベロープFrom(MAIL FROM:)と呼ばれる別のfromアドレスが使われます。

とのこと。

いろいろ対策を模索していたら、
「Procmail の紹介とレシピの書き方」
というページでいい方法を見つけました。

----------------------------------------------
# ブラックリストファイルの指定
BLACKLIST=$HOME/.blacklist

# ブラックリストレシピ
# 送信者のメールアドレスを抽出。
# 後のレシピのフラグにEを指定することで上のレシピが実行されなかったら、
# つまり Reply-To、Sender、From のどれかが見つかったら、
# 記述されていたメアドを FROM に代入。
:0
*$ ! ^Reply-To: *\/[^ ].*
*$ ! ^Sender: *\/[^ ].*
*$ ! ^From *\/[^ ]+
{
FROM = `formail -x From:`
}
:0 E
{
FROM = $MATCH
}

# ブラックリストファイルがあることを確認した上で、
# 送信者のメールアドレスがブラックリストに含まれているかどうかチェック。
# 見つかったらごみ箱に送っています。
:0
* ? test -s $BLACKLIST
* ? echo "$FROM" | fgrep -iqf $BLACKLIST
/dev/null
----------------------------------------------