モーグルとカバとパウダーの日記

モーグルやカバ(EXカービング)山スキー(BC)などがメインの日記でした。今は仕事のコンピュータ系のネタが主になっています。以前はスパム対策関連が多かったのですが最近はディープラーニング関連が多めです。

ベイシアンフィルタのプレフィルタ

postgrey + FQDNチェックパッチ を導入して以来、それまで使っていたCRM114はやめているのだが、postgrey のほうが安定して動いているようなので、2段目のフィルタとしてCRM114を再度導入してスパムの検出率を上げたいと思う。


しかし、CRM114では、大きなメールが来たときに、メールボックスがおかしくなってしまうときがたまにあり、この問題を解決しないといけないなあ、と思っている。

そこで、CRM114に食わせる前にMIMEのパートを見て、textとかでないものは事前に捨てちゃえばいい、と考えました。
あと、サイズを100K以内とかで、先にそこで切ってしまっても良いように思います。


それでそんなフィルタを作るために、CPANMIME-toolsの資料を漁ったりしていたら、すでに同じようなことをされている人を発見。
こちらの方は、bogofilterだとかCRM114だとか、ベイシアンフィルタ系のツールでは、事前にnkfかけてkakasi通して、というのをパッチだとかでやるので、それをやるための汎用フィルタを作ったらいいんでは、というのが開発動機のようですが、そのおまけとして余計なパートを削るという機能も実装されていました。


迷惑メール
http://www.tomilab.net/~tominaga/antispam/


なのでこちらのソースを使わせてもらって、ある程度以上読み込んだら、そっから先を捨てちゃう機能を足せば、自分の欲しいものになると思います。

なんですが、Ruby なんだよな。
仕方ないからこの機にちょっとだけ Ruby を使えるようになろうと思います。


(追記)

procmailで事前にサイズチェック見て、でかかったらフィルタしない運用にしてるとのこと。
うーん。でかいspamだとか送ってくることはないからこれでいいのかも。
もしくは、このプレフィルタの前にさらにheadかなんかを入れてフィルタにするだけでもよいのかなあ。