ベイジアンスパムフィルタ活用法(というほどすごくないけど)
これから受信されるメールの分類は、前回(っていつよ?)書いたような設定をしておけばOKだけど、これまでに受信してしまったものはどうしよう?と思って、簡単なシェルスクリプトを作ってみました。前提は、「まともにSpamをSpamと判定してくれる」データベースがすでに構築されていること。
言うまでもないですが、これは(MaildirでもMH形式でもいいけど)1メール1ファイルという形式を取ってるものでのみ有効な方法です。
bsfilterをフィルタリングモードで使用した場合、終了ステータスでSpam or Not Spamを教えてくれるので、それを利用してるだけなんですがね。
このスクリプトでは、単にメールのファイル名+spamかspamでないかという情報を出力してるだけ(echoコマンド使用)ですが、Spam判定の時点で動く部分を
#!/bin/sh
for mail in spambox/*
do
if /home/wakatono/bin/bsfilter < $mail
then
echo $mail is spam
else
echo $mail is not spam
fi
done
とかしてやれば、Spamフォルダに(学習した範囲内で)Spam判定されたものを放り込むことが可能です。
mv $mail $HOME/Maildir/.SPAM/cur