今利用しているさくらインターネットのレンタルサーバにはメールサービスに迷惑メールフィルタ機能がある。いわゆるスパムフィルタで転送設定にしているメールアカウントにも適用出来るので良い。うちは携帯用のメールアカウントを作成していて、実際の携帯メールアカウントに転送している(万が一のキャリア変更対策)。スパムフィルタ機能をenableにしておくと、スパム判定されたメールは転送されずにサーバにspoolされる。携帯電話のメール機能ではヘッダに付加されたSPAM通知ヘッダで振り分けなんて出来ないので、この仕様は的を射ている。
が、しかし、この迷惑メールをすり抜けるSPAMが意外と多い。フィルタを利用し出して2ヶ月くらいになるが、まだ半分くらいはすり抜ける。このフィルタはspamassassinを使って実現されており、例によっベイズ理論を利用しているので学習をさせれば精度はあがっていく。が、それにしてもすり抜けが多い。
色々調査してみると、どうやらspamassassinのデフォルト設定は、SPAM判定の閾値がやや高すぎるらしい(5.0ポイント)。こーゆー時はユーザ設定で独自に閾値を設定してやると良い模様。世の中には練りこまれたspamassassinユーザ設定というのも出回っているが、さくらインターネットで使われているパッケージのバージョンが古いのでそのまま適用出来ない。とりあえず閾値だけ変更してみることにする。
設定は1つだけ。~/.spamassassin/にuser_prefsというファイルを作成し、中身を以下のように記述する。
required_hits 2.4
この状態でメールの受信を行ってみると、閾値を2.4としてSPAM判定を行うようになった。2.4という数字にあまり根拠はない。フィルタをすり抜けるメールのヘッダを確認するとだいたい2.5ポイントくらいのが多かったので設定してみた。
しばらく様子みているが、フィルタをすり抜けてくるメールは激減した。それでもまだ5%くらいは失敗するのだが、これは学習が進めばそのうち気にならなくなるであろう。自宅で運用しているPOPFileも最初はそうだった。