spamメールからアドレスを抽出して、blacklistを作ります。
ぼくの環境ではspamメールはMaildirの.spamに入っています。
grep "From" ~/Maildir/.spam/cur/* | grep -E "[-_a-zA-Z0-9\.+]+@[-a-zA-Z0-9\.]+" | grep -o "[-_a-zA-Z0-9\.]*@[-a-zA-Z0-9\.]*" | sort | uniq
これを.blacklistに保存してprocmailを使うと、このリスト中のメールアドレスからのメールはそのまま削除されます。
.procmailrcの例です。イマドキはあまり使われないだろうな…。
PATH=/bin:/usr/bin:/usr/local/bin MAILDIR=$HOME/Maildir/ LOGFILE=$HOME/.mail/log DEFAULT=$MAILDIR VERBOSE=ON # ブラックリストファイルの指定 BLACKLIST=$HOME/.blacklist # spam対策 # From:, Reply-To:, Sender:, From のどれかに # ブラックリストのメールアドレスが含まれていたらゴミ箱へ。 :0 * ? test -s $BLACKLIST * ? (formail -x From: -x Reply-To: -x Sender: -x From | fgrep -iqf $BLACKLIST) /dev/null