SpamAssassin


1. インストール

portsのコンパイルオプションを/etc/make.confのSENDMAILに合わせます。

/usr/ports/mail/spamass-milter/files/site.config.m4

+ APPENDDEF(`confLIBS', `-lldap -llber -lsasl2')
+ APPENDDEF(`confLIBDIRS', `-L%%LOCALBASE%%/lib')
+ APPENDDEF(`confINCDIRS', `-I%%LOCALBASE%%/include')

portsからインストールします。

# portinstall /usr/ports/mail/spamass-milter

設定ファイルを置きます。 チューニングにあたってはTLECで配布しているユーザ定義ファイルを使います。

# cd /usr/local/etc/mail/spamassassin
# cp local.cf.sample local.cf
# echo "trusted_networks YOUR_NETWORK_IP" > private_prefs
# echo "allow_user_rules 1" >> local.cf
# fetch http://tlec.linux.or.jp/docs/user_prefs

2. 学習

SpamAssassinに迷惑メール(spam)と通常メール(ham)を学習させます。

学習にはある程度のメール数が必要なので、spamメールはGmailの「迷惑 メール」フォルダーから持ってくることにします。

IMAPの日本語フォルダー名はModified UTF-7でエンコードされている ので、そのコードで指定します。

% imapsync --host1 imap.gmail.com --host2 imap.next-hop.net --port1 993 --port2 993 \
  --ssl1 --authmech1 LOGIN --folder [Gmail]/&j,dg0TDhMPww6w- \
  --ssl2 --useheader Message-ID --skipsize --regextrans2 "s/\[Gmail\]/Gmail/" \
  --user1 username1@gmail.com --user2 username2 --password1 secret1 --password2 secret2

迷惑メールと通常メールのディレクトリを指定してそれぞれ学習させます。

# sa-learn --spam '/var/spool/imap/user/username2/Gmail.&j,dg0TDhMPww6w-'
# sa-learn --ham /var/spool/imap/user/username2/FreeBSD
# echo "include /usr/local/etc/mail/spamassassin/user_prefs" > /root/.spamassassin/user_prefs
# chown -R spamd:spamd /root/.spamassassin

3. 起動

/etc/rc.confに以下を追加します。

spamd_enable="YES"
spamd_flags="-u spamd"
spamass_milter_enable="YES"

フィルターを起動します。

# /usr/local/etc/rc.d/sa-spamd start
# /usr/local/etc/rc.d/spamass-milter start