Windowsでスパムフィルター「bsfilter」

関連サイト:http://bsfilter.org/


スパムメールを何とかしたい!!

「OpenBlocks200+ssdlinux+Postfix+bsfilter」で紹介したスパムフィルター方法は
自分でサーバを持ってないとできないじゃんっ!!

でも大丈夫です。
bsfilterはWindowsで使用しているメールソフトと連動してスパムを除去してくれる
windows版も用意してくれています。

http://bsfilter.org/ ←ここからbsfilterをダウンロードしてください。
この記事を書いているときはbsfilter-1.0.15.tgzでした。

ここで困るのが、Windowsではあまり見かけない拡張子「tgz」です。
これはLinuxやUnixでよく使用されている圧縮形式です。

Lhaplus と言うソフトをダウンロードしてインストールしてください。

そうするとダウンロードしたファイル「bsfilter-1.0.15.tgz」のアイコンが変わるので
それをダブルクリックすると展開されます。

僕の場合「bsfilter-1.0\bsfilter-1.0.15」となりその中に色々ファイルが入っていました。
その中の「bsfilter」フォルダをコピーして「c:\」にコピーしてください。

「c:\bsfilter」の中に「db」フォルダ「spambox」フォルダ「cleanbox」フォルダを作成しました。
新規作成でテキスト文書で作成したものを「bsfilter.conf」と名前を変更してください。
そのファイルをメモ帳で開いてください。
そこに以下を記述してください。

homedir c:\bsfilter\db
pop
pop-proxy-set mail.hogehoge.com:::10110
insert-flag
insert-probability
auto-update
tasktray

上の「mail.hogehoge.com」はプロバイダからもらった開通通知の「POP3サーバ」
もしくは「受信サーバ」を入力してください。

上書きして終了してください。

次に「iconv.dll」をダウンロードしてください。
この記事を書いているときは「Libiconv DLL 1.9.1 for Windows」でした。

これも圧縮されているので、ダブルクリックで展開し、出てきた「iconv.dll」を
「c:\bsfilter」の中に入れてください。

これで「bsfilterw.exe」を実行してください。
タスクトレイにbsfilterが出てきたはずです。

次にメールソフトの設定を変更します。

「POP3サーバ」 もしくは「受信サーバ」のポート(110となっていると思います)を
bsfilter.confの所に書いた 「mail.hogehoge.com:::10110」の右の数字
「10110」に変更してください。

これで準備が整いました。
受信してみるとメールのヘッダに

X-Spam-Flag: No
X-Spam-Probability: 0.000000

と言うのもが追加されています。

「X-Spam-Flag: 」はクリーンメールと判定されたときに「No」、スパムと判定されたときには「Yes」
「X-Spam-Probability: 」は判定の確立です。

デフォルトで確立「0.9」以上は「Yes」、「0.9」以下は「No」と判定される。
この確立が気に入らないときは「bsfilter.conf」に

spam-cutoff 0.6

と「1〜0」の間で指定すればよい。
1に近いほどクリーンメールをスパムメールと誤判定する確立が減る
0に近いほどクリーンメールをスパムメールと誤判定する確立が増える

このbsfilterはメールの内容を学習し、判定精度を高めていくので
まずは何がクリーンメールで、何がスパムメールなのかを学習させる必要があります。

学習用のバッチファイルを作ります。

新規作成でテキスト文書で作成したものを「add-spam.bat」と名前を変更してください。
そのファイルをメモ帳で開いてください。
そこに以下を記述してください。

c :\bsfilter\bsfilter.exe --homedir c:\bsfilter\db --verbose --add-spam --update c:\bsfilter\spambox\*

一行で書くと、上書きし終了してください。
もうひとつ作ります。

新規作成でテキスト文書で作成したものを「add-clean.bat」と名前を変更してください。
そのファイルをメモ帳で開いてください。
そこに以下を記述してください。

c :\bsfilter\bsfilter.exe --homedir c:\bsfilter\db --verbose --add-clean --update c:\bsfilter\cleanbox\*

一行で書くと、上書きし終了してください。

これで、クリーンメールを受信したら「c:\bsfilter\cleanbox」に入れ、
スパムメールを受信したら「c:\bsfilter\spambox」に入れてください。

スパムメールを追加したら「add-spam.bat」を実行、
クリーンメールを追加したら「add-clean.bat」を実行し、どんどんパターンを学習させます。

それを繰り返しているとメールヘッダ「X-Spam-Flag:」の結果がどんどん正しいものになって行きます。

後は、メールヘッダによる振り分け機能を使用し、「X-Spam-Flag: Yes」があったら、ゴミ箱(削除フォルダ)に
突っ込むように設定します。
ゴミ箱がなかったら「スパムメール」と言うフォルダを作って、そこにでも行くようにしましょう。

当分は、判定を間違えるのでウイルス対策ソフトのウイルス定義を最新にしてから、ゴミ箱やスパムメールフォルダを
のぞきましょう。

「えっでも、ヘッダなんて見えない」「ヘッダで振り分けなんてできない」と言う方
比較的よくある「件名で振り分け」する方法もあります。

bsfilter.conf に「mark-spam-subject」を追加します。

homedir c:\bsfilter\db
pop
pop-proxy-set mail.kyoto-kcg.ac.jp:::10110
pop-proxy-set machtype.com:::10111
insert-flag
insert-probability
mark-spam-subject
auto-update
tasktray

そうすると件名に[SPAM]と入りますので、[SPAM」と言う文字が着たらゴミ箱に入るようにしましょう。




上へ
 トップページへ