2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

Bogofilterの日本語化!

bogofilter は、元々日本語には対応していない。そこで、ここ desuyo.netさんを参考にbogofilter-0.91.0からbogofilter-1.0.3へバージョンアップをきっかけにngramパッチを使って日本語化させてみた。本当は、日本語化パッチがbogofilter-1.0.1の物だけど、bogofilterの FTPサイト には2006年9月現在、bogofilter-1.0.3以降のバージョンしか無いため、bogofilter-1.0.3にngramパッチをしてみた。

インストール環境)
マシン : Celeronデスクトップ メールサーバ
OS : Naure’s Linux1.5

1.Bogofilterは、BerkeleyDBが必須

DB-4をインストールする
1)DB-4インストール
ここ から、2006年9月現在最新の db-4.4.20.tar.gz をゲットしてインストールする。

[VFS-root@sub ~]# cd /usr/local/src/
[VFS-root@sub src]# tar zxvf db-4.4.20.tar.gz
[VFS-root@sub src]# chown -R root.root db-4.4.20
[VFS-root@sub src]# cd db-4.4.20
[VFS-root@sub db-4.4.20]# cd build_unix
[VFS-root@sub build_unix]# ../dist/configure
[VFS-root@sub build_unix]# make
[VFS-root@sub build_unix]# make install
[VFS-root@sub build_unix]# cd /usr/local/BerkeleyDB.4.4/

2)ヘッダー及びライブラリのコピー
[VFS-root@sub BerkeleyDB.4.4]# cp include/* /usr/local/include/
[VFS-root@sub BerkeleyDB.4.4]# cp lib/* /usr/local/lib/

注:ヘッダーとライブラリは同じバージョンのものをコピーしないとBogofilterのインストール時にDBが不整合だと怒られてエラーになるので気を付けること。


2.Bogofilterをインストールする
一般ユーザで作業する。
ここ から、 bogofilter-1.0.3.tar.gz と ここ から、n-gram による単語分割を行う日本語化パッチをダウンロードする。ここ を参考にさせてもらった。

[VFS-mity@sub /]$ cd /usr/local/src/
[VFS-mity@sub src]$ tar zxvf bogofilter-1.0.3.tar.gz
[VFS-mity@sub src]$ cd bogofilter-1.0.3
このディレクトリにパッチをダウンロードしたとする。
[VFS-mity@sub bogofilter-1.0.3]$ zcat bogofilter-1.0.1-ngram-0.18.patch.gz | patch -p1
[VFS-mity@sub bogofilter-1.0.3]$ ./configure –enable-ngram –enable-libnkf

–enable-ngramで単語分割をイネーブルして –enable-libnkfでnkfの自動変換もイネーブルにする。
[VFS-mity@sub bogofilter-1.0.3]$ make
[VFS-mity@sub bogofilter-1.0.3]$ su
Password: *********
[VFS-root@sub bogofilter-1.0.3]# make install

インストールは、これで終わり。


3.動作確認
bogofilterの詳細は、すでに俺が書いているので ここ 参考にして欲しい。

動作確認を簡単にするなら、適当なテストメールを受信してヘッダー情報に以下のような記述が有ればOKだ。
Sep 3 13:11:04 sub bogofilter[6940]: X-Bogosity: Unsure, spamicity=0.498126, version=1.0.3


4.補足説明
1)worldlist.dbを小さくする
wordlist.dbが大きくなりすぎたので、ちっちゃくしてみた。
結構、小さくできた。
[VFS-mity@sub .bogofilter]$ bogoutil -d wordlist.db | bogoutil -l wordlist.db.new
[VFS-mity@sub .bogofilter]$ ls -al

total 40036
drwx—— 2 mity staff 4096 Sep 3 14:21 .
drwxr-xr-x 5 mity staff 4096 Sep 3 12:50 ..
-rw——- 1 mity staff 24117248 Sep 3 14:00 wordlist.db
-rw-r–r– 1 mity staff 16822272 Sep 3 14:21 wordlist.db.new

2)スパムとして認識してるかテストする
試しに、日本語のspamメールを、以下のコマンドでデータベースへ登録した。
[VFS-mity@sub ~]$ bogofilter -svI .spamdir/spam8.txt

そして、spamデータベースへ登録したspamをちゃんとspamとして認識するかテストする。
[VFS-mity@sub ~]$ bogofilter -vI .spamdir/spam8.txt
X-Bogosity: Spam, tests=bogofilter, spamicity=1.000000, version=1.0.3

X-Bogosity: Spam, このように表示すればspamとして認識してる。

3)procmailrcの記述の変更
bogofilter-0.91.0からbogofilter-1.0.3へアップデートすると、spamメールの判定が旧バージョンと異なる。そこで、procmailrcを以下のように編集する。

[VFS-root@sub ~]# cd /etc/postfix
[VFS-root@sub postfix]# vi procmailrc
省略
:0fw
| /usr/local/bin/bogofilter -u -e -p -l

:0:
#* ^X-Bogosity: Yes
* ^X-Bogosity: Spam
/dev/null
省略

濃い青字のように変更する。spamだったときの判定が旧バージョンの時の判定は、「Yes」だったのに対して新バージョンでは、「Spam」に変更されている。

以上

コメント