Last Update: "2008/05/09 09:31:50 makoto"
Spamass-milter: -xオプション
http://slashdot.jp/~Ryo.F/journal/356935

spamass-milter

milter というのは mail filter です。この spamass-milter を入れることにより MTA から spamassassin を呼べるようになります。 mail/spamass-milter で make package すると、mail/spamassassin も make package してくれます。最後に次のような表示が出ます。
The following files should be created for spamass-milter-0.3.0nb4:

        /etc/rc.d/spamass-milter (m=0755)
            [/usr/pkg/share/examples/rc.d/spamass-milter]
つまりこれは
sudo cp -p /usr/pkg/share/examples/rc.d/spamass-milter /etc/rc.d
しなさいということです。 sendmail の場合は cf に次の行を加えて ./Build hoge.cf します(次の行は実際には一行です)。
INPUT_MAIL_FILTER(`spamassassin', 
  `S=local:/var/run/spamass.sock,, F=, T=C:15m;S:4m;R:4m;E:10m')
spamass-milter が動作するためには、 spamassassin が別途必要なのですが、設置は依存関係で自動で入ります。しかし 起動は自動では行なわれませんので、 spamassassin にあるように
sudo cp -p /usr/pkg/share/examples/rc.d/spamd /etc/rc.d
のようにして /etc/rc.d/spamd を用意します。/etc/rc.conf に次の二行を加えます。
spamass-milter=YES
spamd=YES
その上で(もしすぐに有効にしたいなら)
/etc/rc.d/spamd start /etc/rc.d/spamas-milter start
のようにします。 上にも少し書きましたが、/etc/rc.conf の変更前なら 次のようにして試しに起動することも可能です。
local socket name /var/run/spamass.sock unsafe

   106  16:20   sudo cp -p /usr/pkg/share/examples/rc.d/spamass-milter \
			/etc/rc.d/spamass-milter
   109  16:20   env spamass_milter=YES sudo /etc/rc.d/spamass-milter start
機械の起動時に自動で spamd/spamass-milter を起動するには /etc/rc.conf に次のように書いておきます。
spamd=YES
spamass_milter=YES

メール見出

うまく動くと、次のような行がメールの header に追加されます。
X-Spam-Status: No, score=1.9 required=5.0 tests=AWL,DATE_IN_PAST_12_24,
        SPF_HELO_SOFTFAIL autolearn=no version=3.1.0
X-Spam-Level: *
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on mail.example.com
これを利用して sieveprocmail を使って spam メールを分類、あるいは廃棄します。

設定

設定は次のところにあります。名前の通り、一つ目が設定例で、二つ目が運用版です。
 /usr/pkg/share/examples/spamassassin/local.cf
 /usr/pkg/etc/spamassassin/local.cf
これに関連して、設定方法の説明は次の方法で見ることが出来ます。
perldoc /usr/pkg/lib/perl5/vendor_perl/5.8.0/Mail/SpamAssassin/Conf.pm
あるいは
perldoc Mail/SpamAssassin/Conf.pm

問題

機械の能力によっては次のようにして、milter が効かないことがあるようです。
Aug 25 09:08:26 hostname spamc[9587]: 
       connect to spamd on 127.0.0.1 failed, 
       retrying (#3 of 3): Connection timed out
Aug 25 09:08:27 hostname spamc[9587]: 
       connection attempt to spamd aborted after 3 retries
以下は以前に見たことのある問題です。最近は解決している気がします。(2007/08 記)
Can't locate Mail/SPF/Query.pm 
cd /home/makoto/.cpan/sources
wget http://www.cpan.org/MIRRORED.BY
touch MIRRORED.BY
touch to avoid following message: (Your /home/makoto/.cpan/sources/MIRRORED.BY is older than 60 days)
sudo perl -MCPAN -e shell cpan> o conf prerequisites_policy ask cpan> install Mail::SPF::Query
Can't locate Net/CIDR/Lite.pm
cd pkgsrc/net/p5-Net-CIDR-Lite/
sudo make package
sudo perl -MCPAN -e shell cpan> o conf prerequisites_policy ask cpan> install Mail::SPF::Query ... Writing /usr/pkg/lib/perl5/site_perl/5.8.0 /powerpc-netbsd-thread-multi/auto/Mail/SPF/Query/.packlist Appending installation info to /usr/pkg/lib/perl5/5.8.0/powerpc-netbsd-thread-multi/perllocal.pod /usr/bin/make install -- OK cpan>

tuning

Aug 26 00:12:34 hostname spamass-milter[284]: 
	Could not retrieve sendmail macro "b"!.  
Please add it to confMILTER_MACROS_ENVRCPT 
	for better spamassassin results