spamassassin 関連メモ
スコアについて
spamassassin のスコアは 4 種類設定できるようになっている. 詳細は Mail::!SpamAssassin::Conf(3) 参照のこと.
score TAG score1 [score2 score3 score4]
- score1(必須): ベイジアンフィルタとネットワークチェックが無効のとき.score1 しか書いてないときは,全ての場合においてこのスコアが利用される.
- score2: ベイジアンフィルタが無効でネットワークチェックが有効のとき.
- score3: ベイジアンフィルタが有効でネットワークチェックが無効のとき.
- score4: ベイジアンフィルタとネットワークチェックの両方が有効のとき.
通常運用では,score4 が利用されることになる.多くのチェックを 行うためだと思われるが,デフォルトでは一般的に score4 は小さめの スコアが設定されている.そのため,スコアが上がりにくくなって いるので,spam の認定がされにくい場合がある.
日本語メールに対するスコア
日本語メールの場合,どうしても引っかかってしまうルールがある. これらは意外とスコアが高いので,local.cf などで低く設定しておく 必要がある.
| GAPPY_SUBJECT | ISO-2022-JP のため,日本語環境でないとまともに見えなくなってしまうので,ほぼ間違いなくマッチしてしまう. |
| OBSCURED_EMAIL | ISO-2022-JP では,文字によって「@」が入ることになるため,メールアドレスと判断してしまう.メールアドレスとして正常ではないので,マッチしてしまう. |
ベイジアンフィルタについて
以下のコマンドで spam/ham を登録.
% sa-learn --showdots --sync --spam [dirs] [files] % sa-learn --showdots --sync --ham [dirs] [files]
- --showdots: ドットで処理経過を表示
- --sync: journal を sync
以下のコマンドで,登録状況を確認できる.
% sa-learn --dump magic
ベイジアンフィルタが有効になるのは,ham の登録数が 200 を越えて から.それまでは無効になる(自動登録は行われる).
ベイジアンフィルタが有効でも,なかなか spam と判定されない. これはスコアが低いため.デフォルトは以下の通り.
score BAYES_00 0 0 -1.665 -2.599 score BAYES_05 0 0 -0.925 -0.413 score BAYES_20 0 0 -0.730 -1.951 score BAYES_40 0 0 -0.276 -1.096 score BAYES_50 0 0 1.567 0.001 score BAYES_60 0 0 3.515 0.372 score BAYES_80 0 0 3.608 2.087 score BAYES_95 0 0 3.514 2.063 score BAYES_99 0 0 4.070 1.886
そのため,local.cf または user_prefs で以下のように スコアを設定すると,ベイジアンフィルタの効果がアップする. このスコア付けは根拠がないので,十分注意が必要である.
score BAYES_99 8.0 score BAYES_95 5.0 score BAYES_80 3.0 score BAYES_60 2.0 score BAYES_50 1.0 score BAYES_40 0.5 score BAYES_20 -0.5 score BAYES_05 -2.0 score BAYES_00 -5.0
