simscan で迷惑メールを撃退!その4

By 大山 礼仁

スパムフィルターの教育

 simscan がインストール出来たら、スパムフィルターを教育することを考えよう。
まず、dspam ですが、
これが、教育の他に毎日クリーニングする必要もある。
root の crontab などで、
crontab -e でエディタを起動して
50 0 * * * /usr/local/bin/dspam_clean qscand
などの行を追加する。
qscand のユーザーに SPAM HAM という imap のフォルダーを作成して
そこにそれぞれ、迷惑メールと、正常メールを格納して学習させるとすると、
0,30 * * * * /usr/local/bin/dspam_train qscand /home/qscand/Maildir/.SPAM/cur /home/qscand/Maildir/.HAM/cur >/dev/null 2>&1
などと、書くと良い。
ただし、これは、必要最小限のメールを格納しておかないと、
教育に時間がかかってしまうので、こまめにフォルダーを掃除すること。

Spamassasin と、Bogofilter の教育は、
ユーザー qscand の crontab で、
su - qscand
crontab -e
0,20,40 * * * * /home/qscand/SPAM >/dev/null 2>&1
5,25,45 * * * * /home/qscand/HAM >/dev/null 2>&1
10,30,50 * * * * /home/qscand/BOGO >/dev/null 2>&1
15,35,55 * * * * /home/qscand/BOGOHAM >/dev/null 2>&1
などと書いておき、
SPAM
HAM
BOGO
BOGOHAM
の内容は、以下の様にする。
全て実行権は立てておくこと、
SPAM
#!/bin/sh
/usr/local/bin/sa-learn --spam /home/qscand/Maildir/.SPAM/cur/*
HAM
#!/bin/sh
/usr/local/bin/sa-learn --ham /home/qscand/Maildir/.HAM/cur/*
BOGO
#!/bin/sh
find /home/qscand/Maildir/.SPAM/cur -type f -exec /usr/local/bin/bogofilter -svI {} \;
BOGOHAN
#!/bin/sh
find /home/qscand/Maildir/.HAM/cur -type f -exec /usr/local/bin/bogofilter -nvI {} \;

これで、学習もできた。

戻る  次へ