日本語対応SpamAssassinのインストール
はじめに
本ページでの説明では、日本SpamAssassinユーザ会で出されている日本語対応ベイジアンの修正を加えますので、SpamAssassin はアーカイブ(圧縮ファイル)からインストールを行います。従って cpan を使っての Mail::SpamAssassin のインストールは行いませんので注意してください。
perl モジュールのインストール
モジュールのインストールは、一回失敗しても、強制終了して再度トライすると、うまく行く場合があります。ねちっこくがんばりましょう。
cygwin のショートカットを実行して、コマンドプロンプトを開きます。
$ cd $ perl -MCPAN -e shell
として、CPAN を起動します。いろいろと聞かれると思いますが、ほとんどリターンでやり過します。ただし、
Your terminal expects ISO-8859-1 (Yes/no)? [yes] no
と聞かれる場面では、"no" を入力します。
途中で、CPAN site を尋ねられるので、 http://www.cpan.org/SITES.html から、どれかをピックアップして入力します。
Please enter your CPAN site: [] ftp://.... Enter another URL or RETURN to quit: [] http://.... Enter another URL or RETURN to quit: []
いくつか候補を入力しておきましょう。ルータの設定で一部ポートを遮断しているため ftp が利用できない環境では、http: のサイトを選択して入力すると良いでしょう。 Proxy(プロキシ)を設定している等の事情が無い限りは、残りをデフォルトのまま進めます。わからなくても、それとなく英語のメッセージには目を通して対処してください。 うまく行くと
cpan>
と表示されるようになりますので、
cpan> install Digest::SHA1
とします。どどーっと見慣れないメッセージが表示されますが、相当いろいろやってくれます。コンパイルやら稼動テストやらをゴニョゴニョやるので、とにかく長いです。めげずに以下のモジュールを入手して下さい。尚、途中で何か尋ねられたら「リターン」キーを押してやり過ごします。途中、died wainting for dll loading, というエラーがでる場合は、強制的い中断して、コントロールパネル・システム・詳細の環境変数 path=C:\Perl\bin;C:\Perl\site\bin;...となっている部分を、後半に回すようにしてから(path=...;C:\Perl\bin;C:\Perl\site\bin;)もう一度実行してみてください。一応、こんな 情報もあります。無駄のような気もしますが、駄目なら試してみてください。根拠はありませんが、cpan の実行は、ホームディレクトリ上で行った方がトラブルがないかもしれません。
cpan> install HTML::Parser cpan> install MIME::Base64 cpan> install DB_File cpan> install Net::DNS cpan> install Net::SMTP cpan> install Mail::SPF # 念のためインストールしますが、失敗しても気にしないですすめます。 cpan> install Mail::SPF::Query # 困った、テストが通りません・・・。 cpan> install IP::Country::Fast cpan> install Net::Ident #インストールに失敗します(不要)。 cpan> install IO::Socket::INET6 #IPV6環境であればインストールに成功するかも?(不要) cpan> install IO::Socket::SSL #インストールに失敗するくさい cpan> install Time::HiRes cpan> install Mail::DKIM cpan> install Mail::DomainKeys #消え行く定め(不要) cpan> install LWP cpan> install HTTP::Date
ここで中断して、caldixを稲葉さんのところからダウンロードしてインストール(実行)します。圧縮関連のDLLを入れます。
cpan> install IO::Zlib cpan> install Archive::Tar cpan> exit
SpamAssassin 日本語パッチのチェック
日本語パッチを 日本SpamAssassinユーザ会/パッチで、チェックします。ここでは、SpamAssassin? 3.2系列の日本語対応パッチを取り上げます。この中にあるバージョンをメモしてください。 同バージョンのダウンロード
仮に 3.2.5 であった場合には、同じバージョンのSpamAssassinを spamassassin distributions からダウンロードします。保存先は、CygWin をインストールしたフォルダ下に存在する /usr/src とします(C:\CygWin? にインストールした場合、C:\cygwin\usr\src と等価です)。CygWin のショートカットを実行して、コマンドプロンプトを起動します。そして、以下のように実行してください。
バージョンは、状況に応じて読み替えてください
$ cd /usr/src $ tar xvf Mail-SpamAssassin-3.2.5.tar.gz $ cd Mail-SpamAssassin-3.2.5
これで、Mail-SpamAssassin-3.2.5 というフォルダが /usr/src 下に展開されます。 日本語パッチ適応
次に日本語パッチを 日本SpamAssassinユーザ会/パッチから入手します。マウスの右ボタンを駆使して、以下の3つをダウンロードします。
* spamassassin-3.2.5-ja-test1.txt
* spamassassin-3.2.5-ja-test1.patch
* tokenizer.pre
保存先は、今度は /usr/src/Mail-SpamAssassin-3.2.5 下(C:\cygwin にインストールした場合、C:\cygwin\usr\src\mail-spamassassin-3.2.5 と等価です)です。ダウンロードしたら、
$ cd Mail-SpamAssassin-3.2.5 $ ptach -p1 < spamassassin-3.2.5-ja-test1.patch
とタイプして、修正を加えます。ブラウザに IE を使用している場合には、"そんなファイルねーよ"と怒られるかと思います。これは、MIME タイプ TXT つまり、テキストファイルの拡張子は、.txt に決まってるよと、勝手に IE がファイル名を変更するためで、この場合には、
$ mv spamassassin-3.2.5-ja-test1.patch.txt spamassassin-3.2.5-ja-test1.patch $ mv tokenizer.pre.txt tokenizer.pre
としてから再度 patch を実行してみてください。尚、拡張子については予測できませんので、2番目の tokenizer.pre.txt は、ちゃんと tokenizer.pre として保存されている場合も考えられます。
それでも途中でエラーになってしまうよ!という方は、gnu-patch のバージョンが古いためで、新しいバージョンを入手してください。ちゃんと、CygWin のインストールで、patch を選択していれば、こんな事にはならないと思います。 インストール
またしても、CPAN の登場です。
$ perl -MCPAN -e shell
として、追加でインストール作業を行います。途中、少々失敗しても気にしないで進めます。
cpan> install ExtUtils::ParseXS cpan> install ExtUtils::CBuilder cpan> install Module::Build cpan> install Test::More cpan> install Data::Dump cpan> install Encode::Detect cpan> exit
そして、ようやく SpamAssassin? 本体のインストール作業に入ります。
$ perl makefile.pl
とタイプします。すると、メール管理者のEメールアドレスを聞かれるので、ご自分のメール管理者宛てのアドレスを入力します。以下のような感じです。
default text : [the administrator of that system] root@yourhost.local
次に
$ make
とタイプします。そして
$ make install
とタイプします。ここまで来れば、もう二息というところでしょうか…。ウィンドウズのエディタで、tokenizer.pre を開き下記のように修正し保存します。(MeCab?は形態素解析を行うモジュールで、日本語を名詞・助詞・品詞・動詞・・・等に分解します。ベイジアンにかけるなら、厳密に解析した方が良いに決まっている!という予想を裏切って、SimpleJAの方が、成績が若干良いというショッキングなレポートもあるぐらいなので、心配する事はありません)
# Tokenizer::SimpleJA
#
loadplugin Mail::SpamAssassin::Plugin::Tokenizer::SimpleJA
# Tokenizer::MeCab
#
#loadplugin Mail::SpamAssassin::Plugin::Tokenizer::MeCab
そして、
$ cp tokenizer.pre /etc/mail/spamassassin
とタイプします。ウィンドウズのエディタで、/etc/mail/spamassassin/local.cf (C:\cygwin にインストールした場合、C:\cygwin\etc\mail\spamassassin\local.cf に等価です) を開き、下記の数行を追加し保存します(追加する行位置は、どこでもOKです)。
#----------------------------------------------------- # Enable UTF-8 rule # normalize_charset 1 #----------------------------------------------------- # Rewrite Header, if spam. # This option is useful for Outlook Express. # rewrite_header Subject *****SPAM***** #----------------------------------------------------- # Disable Auto-WhiteList. # FROM is lie. # use_auto_whitelist 0 # auto_whitelist_path /var/spamassassin/auto-whitelist # auto_whitelist_file_mode 0666 #----------------------------------------------------- # Set bayes file path and file mode. # bayes_path /var/spamassassin/bayes bayes_file_mode 0666
テストで、
$ spamassassin --lint
を実行してみてください。何事も無く終了します。おめでとう!これで、大まかにはインストールが完成です。せっかくなので、サンプルとして付属するスパムメールとハムメールをデバッグモードで料理してみましょう。
$ spamassassin -D < sample-spam.txt $ spamassassin -D < sample-nonspam.txt
最後に spamd をサービス化しましょう。
$ cygrunsrv --install SpamDaemon --path /bin/spamd
