日本語対応SpamAssassinのインストール手順です。こちらのサイトを参考にさせていただきました。日本語対応パッチもこちらで公開されています。SpamAssassin関連実験場インストールmecab日本語は英語のように単語毎には分かち書きされていない言語なので、単語毎に解析するには分かち書きプログラムが必要になります。日本語対応SpamAssassinでは分かち書きプログラムとして形態素解析エンジンmecabを使用します。mecabはUTF-8版としてコンパイルします。パッケージが提供されているのでこれを使用します。ソースをダウンロードします。ipadicもここからダウンロードします。charsetをutf8にしてコンパイルします。configureのとき--with-libiconv-prefixだけだとlibiconvをうまく見つけてくれないのでLDFLAGSを指定しました。ipadicmecabが使う辞書です。mecab-ipadic-2.7.0-20060707char.defのASCIIのところを以下のように変更します。ALPHAmecab本体と同じくcharsetをutf8にします。私の環境では、"utf8"ではなくて"utf-8"とハイフンを入れないとiconvが動きませんでした。installText::MecabmecabをPerlから使うためのモジュールです。mecabの公式サイトにあるmecab-perlとは違うものなのでご注意ください。CPANではうまくインストールできなかったのでhttp://search.cpan.org/~dmaki/Text-MeCab/からダウンロードしてコンパイルしました。Text-MeCab-0.13Makefile.PLに以下の行を追記します。install文字コードを尋ねられたら"utf-8"にします。そのほかはデフォルトで大丈夫だと思います。なんだかやたらとはまりましたがようやくUTF-8版のmecabをインストールできました。SpamAssassin通常版のSpamAssassinはCPANでインストールできますが、今回は日本語対応パッチを当てるので手動でコンパイルします。Encode::Detect日本語対応版ではEncode::Detectが必要になります。CPANでインストールできるはずがふつうにやってもまずインストールできません。Encode::Detectを実行してやると入りましただそうです。私の環境ではやっぱりCPANではインストールできなかったので、依存モジュールをインストール後、以下の手順でインストールしました。本体をダウンロードします。日本語対応パッチをダウンロードします。spamassassin-3.1.7-normalize-test7.patchINSTALLを参考に依存モジュールをインストールします。重要そうなものを挙げておきます。そのほかのものは好みでインストールしてください。spamdベイジアンフィルタ用のデータを置くためのディレクトリを作っておきます。/var/spool/spamassassinrcスクリプトSpamAssassinの使い方は、スタンドアロンで動かす方法(spamassassinコマンド)と、クライアントサーバ方式で動かす方法(spamd/spamc)があります。今回はクライアントサーバ方式で動かします。rcスクリプトのサンプルがspamd/solaris-rc-script.shにありますので少し修正して以下のようにしました。設定ファイル設定ファイルはデフォルトでは/etc/mail/spamassassin以下に置かれます。local.cfを編集する。Mail::SpamAssassin::Plugin::Tokenizer::MeCabサイト独自の設定ファイルはsite/以下に作成しsite.cfというファイルからincludeすることにします。0ベイジアンフィルタ学習SpamAssassinの真骨頂とも言えるベイジアンフィルタの学習を行います。判定精度を良くするには継続的に学習を行う必要があります。集めたスパムメールを1メール1ファイル形式で/tmp/spam/に置き、スパムでないメールを/tmp/ham/に置きます。1000通ほどあると理想的のようです。sa-learnコマンドで学習を行います。/tmp/ham/*/var/spool/spamassassin以下にデータベースが作成されます。時間がかかりますので気長に待ちましょう。negative)されたときは以下のように学習します。positive)は以下のように学習します。file使ってみる動作テストお疲れさまでした。SpamAssasssinを実際に使えるところまで来ました。spamassassinコマンドおよびspamcコマンドは標準入力からメールを読み込んで、X-Spam-Flagなどのヘッダを付けて標準出力に書き出します。いろいろなプログラムと組み合わせて使うことができます。コマンドラインから起動してみましょう。メールファイルとしてメールファイルを読み込み、ヘッダが追加されて出力されることを確認してください。X-Spam-Statusなどのヘッダでスパムと判定されたかどうかが分かります。procmailfetchmailでPOP3サーバから受信したメールをSpamAssassinでチェックする設定の例です。Proxy以下のページでDeleGateと組み合わせてスパムフィルタ付きのPOP3プロキシを構築する手順を紹介しています。Perl5.022001。