spamassassin 関連メモ

スコアについて

spamassassin のスコアは 4 種類設定できるようになっている. 詳細は Mail::!SpamAssassin::Conf(3) 参照のこと.

score TAG score1 [score2 score3 score4]
  • score1(必須): ベイジアンフィルタとネットワークチェックが無効のとき.score1 しか書いてないときは,全ての場合においてこのスコアが利用される.
  • score2: ベイジアンフィルタが無効でネットワークチェックが有効のとき.
  • score3: ベイジアンフィルタが有効でネットワークチェックが無効のとき.
  • score4: ベイジアンフィルタとネットワークチェックの両方が有効のとき.

通常運用では,score4 が利用されることになる.多くのチェックを 行うためだと思われるが,デフォルトでは一般的に score4 は小さめの スコアが設定されている.そのため,スコアが上がりにくくなって いるので,spam の認定がされにくい場合がある.

日本語メールに対するスコア

日本語メールの場合,どうしても引っかかってしまうルールがある. これらは意外とスコアが高いので,local.cf などで低く設定しておく 必要がある.

GAPPY_SUBJECTISO-2022-JP のため,日本語環境でないとまともに見えなくなってしまうので,ほぼ間違いなくマッチしてしまう.
OBSCURED_EMAILISO-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

ベイジアンフィルタ自動学習について

AWL(Auto Whitelist)について