SpamAssassin
RIMNETのspamが結構ひどい状況になってることもあって、SpamAssassinを試してみる。
$ tar zxvf Mail-SpamAssassin-3.0.0-rc5.tar.gz $ cd Mail-SpamAssassin-3.0.0/ $ perl Makefile.PL $ make # make install
で入るはずなのだが、makeで、Digest::SHA1が見つからないというエラーが出る。「@INCの中に」と言ってるので、パスの問題かと思ったが、SpamAssassinのパッケージ内にはそんなファイルは見当たらない。perlが古いせいかと思い、最新のstableのperl-5.8.5を入れてみる。が、状況変わらず。ここでようやく、追加パッケージを入れるのだということに気付く。CPANから
- Digest-SHA1-2.10.tar.gz
- HTML-Parser-3.36.tar.gz
を取ってきてインストール。それぞれ解凍して
$ perl Makefile.PL $ make # make install
こんな感じ。rubyのdrbとかrd2htmlとかと同じ話なのね。perlわからんよ〜。皆CPANから直接入れてるから情報少ないし。
とにかくインストールはできたと。で、どーやって使うのだと。よーわからんまま定義ファイルを取ってきて、/etc/mail/spamassassin/local.cfに置く。どうやらspamdとspamcのC/Sになってるらしいので、やはりよーわからんまま/etc/rc.d/rc.localに
/usr/local/bin/spamd -d
を追加。パッケージに入っているサンプルを使って、
/usr/local/bin/spamc < sample-spam.txt
とすると、もとのメッセージに
X-Spam-Flag: YES X-Spam-Checker-Version: SpamAssassin 3.0.0-rc5 (2004-09-13) on obs.pegandgiff.dyndns.org X-Spam-Level: ************************************************** X-Spam-Status: Yes, score=997.1 required=7.0 tests=ALL_TRUSTED, CONTENT_TYPE_PRESENT,GTUBE autolearn=unavailable version=3.0.0-rc5
こんなヘッダを追加したものを標準出力に出してくれる。spamでないと判断した場合はこんな感じ。
X-Spam-Checker-Version: SpamAssassin 3.0.0-rc5 (2004-09-13) on obs.pegandgiff.dyndns.org X-Spam-Level: X-Spam-Status: No, score=-0.1 required=7.0 tests=CONTENT_TYPE_PRESENT autolearn=unavailable version=3.0.0-rc5
なるほど、なるほど。そうやって使うのね。しかし、このサンプル処理するのに1分くらいかかってるんだけど大丈夫かな〜。ま、意味はわかったのでそそくさと設定。..procmailrcの中で、
:0fw *!^X-Spam.* |/usr/local/bin/spamc
X-Spamのヘッダが付いてない全てのメールをspamcに渡す。
:0: * ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* $MAILDIR/.certainly-spam/
Spam-Levelが15以上だったらcertainly-spamフォルダへ。Maildirを使う場合は、最後の'/'を忘れずにだ。
:0: * ^X-Spam-Status: Yes $MAILDIR/.probably-spam/
Spam-Levelが15未満でStatusがYesならprobably-spamフォルダへ。実際やってみると、RIMNETに届いてるspamは全て"probably-spam"に入ってる。素晴らしい。もっとcertainlyのレベルを下げてもいいのか?