某メールサーバ(Postfix、Dovecot)で最近メールの不着がちらほら出ていた。 最近になってからだよな〜増えたのと思い、メールログなど漁っているうちに、spamassassinのルールには2010年問題があるということを知った。
まずは残っていたログ
May 29 17:35:17 localhost spamd[1428]: spamd: identified spam (13.2/13.0) for filter:1001 in 16.8 seconds, 880 bytes.
May 29 17:35:17 localhost spamd[1428]: spamd: result: Y 13 - AWL,BAYES_50,CNCGROUP,CNCJP,CONTENT_TYPE_PRESENT,DIRECTOCNDYN,DNS_FROM_OPENWHOIS,DYN_SUPPORT,
FH_DATE_PAST_20XX,ISO2022JP_BODY,ISO2022JP_CHARSET,OCNNEJP,RCVD_NUMERIC_HELO2,SUPPORT,WEIRD_QUOTING,X_MAILER_PRESENT
scantime=16.8,size=880,user=filter,uid=1001,required_score=13.0,rhost=localhost.localdomain,raddr=127.0.0.1,rport=44610,mid=<20100529173458.D270.1D5B9719@example.com>,bayes=0.522300,autolearn=no
一行目で**identified spam(13.2/13.0)**とスパム判定されていることが判る。スパム判定の閾値が13.0に設定されているが、該当のメールのスコアは13.2。これで不着となってしまっていたようだ。
続いて、なぜスパム判定されていたのか調べてみる。2行目に理由が書かれているので、下に並べてみた。
- AWL
- BAYES_50
- CNCGROUP
- CNCJP
- CONTENT_TYPE_PRESENT
- DIRECTOCNDYN
- DNS_FROM_OPENWHOIS
- DYN_SUPPORT
- FH_DATE_PAST_20XX
- ISO2022JP_BODY
- ISO2022JP_CHARSET
- OCNNEJP
- RCVD_NUMERIC_HELO2
- SUPPORT
- WEIRD_QUOTING
- X_MAILER_PRESENT
1つずつ、中身を調べてみたんだけど、「FH_DATE_PAST_20XX」ていうやつがどうも怪しい。 ググってみるとこんな記事がヒット。
SpamAssassinのFH_DATE_PAST_20XX SpamAssassinのルールにFH_DATE_PAST_20XXというのがあって、本当に2010年になってしまうと全メールにポイントが2、3 点加算されてスパム判定がおかしくなるようです。 Current Status Notes
sa-update
というコマンドがあって、それを実行すればいいそうだが、どこら辺の範囲までupdateされるコマンドか分からないため、とりあえず手動でこのルールを解除。
実際に、簡単で同じ文面のメールを前後で比較するとルール解除前は5.5だったものが4.0になった。
ついでにルール:OCNNEJPも解除。 これで以前よりはスパム認定されるメールは減るだろう。
Apacheプロジェクトからもリリースが出てたみたい。 「SpamAssassin」で年号に関するバグが発見 ルール「FH_DATE_PAST_20XX」をリリース:CodeZine