procmailで呼び出すのではなく、SMTPレベルでSpamAssassinと連携したい。以下の通りである。
$spam_reportを簡潔にする。
### 報告の雛型
clear_report_template
report “_TESTSSCORES(, )_”
実際には、$spam_report は長ったらしいので disable にする。
# SpamAssassinを呼び出して, $spam_score と $spam_report を得る.
# 選別結果に応じて, $acl_m9 に “ham” か “spam” をセットする.
#
# メッセージが spam に選別されたら, 拒否したふりをする.
#
warn
set acl_m9 = ham
spam = mail
set acl_m9 = spam
control = fakereject
logwrite = :reject: Rejected spam (score $spam_score): $spam_report$
# メッセージに適切な X-Spam-Status: ヘッダを追加する.
#
warn
message = X-Spam-Status: \
${if eq {$acl_m9}{spam}{Yes}{No}} (score $spam_score)
# Disable Spam Report
#${if eq {$acl_m9}{spam}{Yes}{No}} (score $spam_score)\
#${if def:spam_report {: $spam_report}}
logwrite = :main: Classified as $acl_m9 (score $spam_score)
# accept otherwise
accept
以下も参考になる