私は MUA に Wanderlust を使用していますが、迷惑メールが届くようになってから、対策として Bogofilter を使い始めました。Bogofilter は英語の迷惑メールの分類は問題ないのですが、日本語の迷惑メールの分類は不得意でした。
そこで、nkf と kakasi を組み合わせたシェルスクリプトを用意して、これを Wanderlust から呼び出すようにしてみたのですが、一ヶ月ほど経ってもなかなか効果が上がらなかったため、巷で評判の高い POPFile を使ってみることにしました。
POPFile は MUA に依存しないメールフィルタリングソフトであり、日本語版を使うことで日本語の迷惑メールも問題なく分類してくれます。POPFile は学習型フィルタであるため、ある程度の学習期間は必要ですが、私の場合、一週間も学習させれば実用レベルに達しました。
Wanderlust との連携は POPFile の設定で迷惑メールに X-Text-Classification ヘッダを付けさせ、Wanderlust の spam フィルタに Regular Expressions Header Matching を選択することで Wanderlust で迷惑メールと判断できるようになりました。
これで日本語の迷惑メールが届いても問題なく分類されるようになりましたが、機能以外の細かいところで気になるところもあります。
- Wanderlust と連携させる場合、POPFile で区切り文字を変更しなくてはならない。そのため、Norton AntiVirus のような透過型メールプロクシと併用する場合の対策が行えず、メール受信時にメールサーバと POPFile の間、POPFile と Wanderlust の間で二回ウィルスチェックがされてしまう
- POPFile は Perl で記述されているため、C で記述されている Bogofilter と比べて動作が遅い。Wanderlust 自体、動作が速いソフトではないため、全体的にかなり遅く感じてしまう
「機能以外」と書いたように、迷惑メール対策としての機能に問題があるわけではないのですが。
そんなこんなで一ヶ月ほど POPFile を使っていたのですが、この度 ISP を @nifty へ変更することになり、@nifty が標準で提供している迷惑メールフォルダを使ってみることにしました。
迷惑メールフォルダは @nifty 独自のフィルタと Symantec Brightmail AntiSpam のフィルタ、学習型のフィルタを組み合わせたものを使用して、迷惑メールと分類されたメールを特別なフォルダへ移動する仕組みです。迷惑メールが格納されるフォルダは POP3 アクセスでは見えない場所ですので、きっちりと分類されればクライアント側では迷惑メールを見ることもなくなるわけです。
# 定期的に迷惑メールフォルダの中身を空にしないと、メールボックスが一杯になってしまいますが
現在、旧メールアドレスへ届いたメールを全て新メールアドレスへ転送するようにしているため、新メールアドレスへのメール流通量は依然と変わらないのですが、@nifty の迷惑メールフォルダによって、殆どの迷惑メールが分類されている状況です。分類精度としては POPFile と同等程度ではないでしょうか。優秀な迷惑メールフィルタだと思います。
POPFile と比べたときの利点としては、何と言っても「クライアント側で対処する必要がない」ことでしょう。あと、この事にも関係するのですが、出先でメールチェックする場合にもメール一覧に迷惑メールに表示されないことでしょうか(私は携帯でリモートメールを使っています)
欠点としては、メールが誤分類された場合、Web メール画面の受信ボックス(POP3 でアクセスできる場所)と迷惑メールフォルダの間でメールを移動させる必要があるのですが、POP3 アクセスでかつ、メールサーバにメールを残さない設定だと、メールサーバにメールが残らないため、迷惑メールなのに問題なしと分類されたメールを学習させることができないということが挙げられます。
ただ、この問題は Web メールと迷惑メールフィルタが一体化されている現状ではどうしようもないのかなと思います。迷惑メールフィルタの学習機能を Web メールから切り離して、POPFile のような迷惑メールフィルタの学習を管理するビューを作るしかなさそうな気がします。
私にとって @nifty の迷惑メールフォルダ機能は実用的であると判断していますが、ISP にはこのような迷惑メール対策をもっともっとやって欲しいし、そもそも不特定多数に迷惑メールを送信できないシステム作りに力を入れて欲しいと思います。