« userminでWEBメール | メイン | pflogsummによるpostfixのログ集計 »

spamassassinで日本語スパムメール対策

headerやbodyにある単語でスパム判定を行う設定をする。

たとえばSubjectに「出会い系」という文字列が入っていたら判定ポイントをプラス1する場合

vi /etc/mail/spamassassin/local.cf
---
header H_SPAM_WORD1 Subject =~ /=P2q\$\$7O/
describe H_SPAM_WORD1 Deaikei
score H_SPAM_WORD1 1.00
---

と記入する。
単に出会い系と記入してはいけない。文字コードの問題である。またPERL言語なのでエスケープしてやる必要もある。

# echo "出会い系" | nkf -j|awk '{gsub(/\x1B[$(]B/,"");print}'
=P2q$$7O

※エスケープの必要のあるメタキャラ
.`*+/?^$#{}()[]

よって「出会い系」は「=P2q\$\$7O」という文字列になる。
bodyにある文字列で判定ポイントを上げるには以下のように書く。

---
body B_SPAM_WORD /=P2q\$\$7O/
describe B_SPAM_WORD Deaikei
score B_SPAM_WORD 1.00
---

bodyの文字列を指定する場合はよく考えてからにしましょう。