最近、spamが悪質になってきて、ベイジアンフィルタだけではまったく弾けなくなってきた。ここしばらくはbogofilterを使っていたが、ヘッダの特徴や言葉の並びを見たりはしてくれないので、ヘッダやメッセージボディを工夫している最近のspamにはまったく歯が立たない。junkfilterをはじめとするprocmail物は、「or」ルールが書きづらかったり、スコアリングがしにくかったりと、メンテナンス性が非常に悪い。
私はもともとメールアドレスの露出が多く、またたくさんのMLに入っているので、一日に受け取るメールは平均して6,000通、うち400〜500通がspamである。最近ではbogofilterやjunkfilterが弾けるのは3/4ほどで、毎日100通以上を手動で読み飛ばしたり投げ捨てたりという悲惨なことになっている。
何に乗り換えようか検討してみたが、サーバの性能は十分なので、もっとも強力できめ細かい設定の可能なSpamAssassinにしてみた。ちなみに、bogofilterはよくDBが壊れるということも不満だった。bdbでもtdbでもある程度使っているとDBが腐ってしまい、腐り方によってはエラーを返さないのでメールを失ってしまうことがある。(.procmailrcではbogofilterに渡す前にバックアップ用フォルダにコピーを残すようにしておかないと危険)
最近のSpamAssassinはspamc/spamdのクライアント/サーバ構成で使うことができ、ルールセットが複雑になってもオーバーヘッドなしに処理できる。(spamdはPerlだが永続的に走り、spamcはCで書かれているので軽い)
有名なTLECの設定ファイルを拾ってきて自分のニーズに合わせて書き換え*1、運用を開始したところ、若干の取りこぼしや誤認識はあるもののおおむね好調。ある程度チューニングが済んだら、設定を公開するつもり。