gmail のスパムフィルタを使ってみる
スパムフィルタをbogofilterからgmailのものに変更したところ、効果があったので、メモしておく。
このところspamが大量にやってくる。
スパム対策は以前にもしていて、IMAP+bogofilterにしたことで、メールボックスに届くスパムは激減。大満足していたのだが・・・。
その頃は日本語以外のスパムメールばかりだったのが、このごろ届くのは、日本語のスパムメール。スパム用のフォルダを見てみると、相変わらず日本語以外のスパムメールはブロックしてくれているようだが、日本語はほとんどすり抜けてくる。
これは、どうやらbogofilterが単語単位でスパム度を評価しているからのようで、日本語だとスペースで区切られていないため、単語を認識できていないのが原因らしい。
メールを単語単位に分解して、bogofilterに食わせなおせばいいのかなぁと思うのだが、よくわからずに放置していたら、日本語のスパムが増える増える。
最小の手間で日本語スパムもどうにかしたい!ということで、gmailのスパムフィルタを使ってみることにした。
現状は、
いくつかのメールアドレス(なんちゃら@かんちゃらをいくつか使い分けている)
↓すべてプロバイダのメールアドレスに転送
プロバイダのメールボックス
↓fetchmail で自宅サーバに引っ張ってくる。
↓procmail で bogofilterを通し、スパムを除去。
↓さらにprocmail でメールを分類、サブフォルダに振り分け。
自宅サーバのメールボックス。
これをIMAPでクライアントからアクセス。
ここに最小の手間でgmailのスパムフィルタを加えてみる。
いくつかのメールアドレス(なんちゃら@かんちゃらをいくつか使い分けている)
↓すべてプロバイダのメールアドレスに転送
プロバイダのメールボックス
↓fetchmail で自宅サーバに引っ張ってくる。
↓そのまま gmail に転送
gmail のメールボックス
↓gmailのスパムフィルタを通過したものを自宅サーバのメールアドレスに転送
↓procmail で bogofilterを通し、スパムを除去。↓
さらにprocmail でメールを分類、サブフォルダに振り分け。自宅サーバのメールボックス。
これをIMAPでクライアントからアクセス。
gmail での設定は、到着したメールがスパムでなければ自宅のメールドレスに転送。やりかたは、BananaBlogさんを参考に
・Create a FilterからHas the words:に「-in:spam」を入力、NextStepを押す。
・Forward it to:に転送先を入力、Create Filterを押してフィルタ作成完了。
これでgmail認定の非スパムメールがバンバン転送されてくる。
で、導入効果ですが、日本語のスパムはざっくり9割ほどブロックしてくれている感じ。たまに届くけど、スパムのフォルダには大量にひしめいているのでかなりの効果があったといってよさそう。残念なのは日本語以外のスパムがbogofilter時代よりちょっと通り抜けてくるようになったことかなぁ。
gmailのフィルタの進化を待つか、自前のフィルタをなんとかするか、悩むところだ。











kakasiとかの形態素解析をうまく使って単語に分割してみるというのはどうかな。
POPFileも結構綺麗に分けてくれますよ。
なっすんどうも。
やっぱりkakasiですよねぇ。今調べたら、bogofilterがkakasiを使うようにするパッチも出ているみたいだし。
まずはkakasiのインストールからだ・・・。
あと、bogofilterは誤判定したメールの再学習させる方法を簡単にしないと。コマンド走らせて学習させる方法は、めんどくさくてなかなかやらないので。
さらに、こんなエントリを書いておきながら、Gmailにスパムのフィルタリングを頼ってしまうというのは、どうなのよという気もする。ある日突然無くなったりするかもしれないし、落ちてても文句は言えないし。googleのサービスだから信用はしてるし、自前のシステムよりはよっぽど堅牢だろうけど。
POPFileは、以前試したときはなかなかの精度でメールを振り分けてくれました。が、サーバサイドで処理したいので。