Ryo.Fの日記: Spamass-milter: SpamAssassin-Milter Quarantine
SpamassassinをsendmailのMILTERで動作させる、Spamass-milterの話の続き。Spamass-milterに'-b hogehoge'と書くと、SPAMをhogehoge宛に転送してくれる、という話を書いた。ただ、こうしてしまうと、spamと判定されたメールはすべてhogehogeに送られて、ユーザには届かない。`-b'の代わりに`-B'を付ければ、`-r num'設定でSMTPレベルで遮断(reject=550 5.7.1 Blocked by SpamAssassin)されたspam以外は、ユーザには届くが、普段はspamなんかユーザに見せたくない。しかしながら、誤判定はツキモノだから、万一の場合はユーザの指示でゴミ箱から取り出せるようにしたい。ユーザが誤判定を知るためには、spam遮断のレポートも欲しいところだ。
ということで、SpamAssassin-Milter Quarantineというのを発見した。こっちはインストールの簡単な解説。
まだ試してないのだが、これには問題がありそうだ。期待通りに動かない可能性があるのだ。
まず、spamass-milterに`-r'と`-b'もしくは`-B'オプションを付けて運用した場合、メールは三段階に分類される。
- (イ)もろspamじゃん
- `-r'で指定した数値以上のスコア
- (ロ)spamじゃないかなあ
- user_prefsもしくはlocal.cfのrequired_scoreで指定した数値以上のスコア
- (ハ)spamじゃなさそう
- それ以外
一方、Spamass-milterのmanpageには、次のような記述がある
- -b
- spamaddress Redirects tagged spam to the specified email address. All envelope recipients are removed, and inserted into the message as `X-Spam-Orig-To:' headers.
- -B spamaddress
- Same as -b, except the original recipients are retained. Only one of -b and -B may be used.
しかし、この記述は正確に言うとちょっとウソだ。というのは、(ロ)に分類されたものは確かにX-Spam-Orig-To:が追加されるのだが、(イ)に分類されたものにはこれが追加されない。代わりに、X-Envelope-From:とX-Envelope-To:が追加されるようだ。
SpamAssassin-Milter Quarantineのコードを眺めてみると、Spam-Orig-To:を元に動作する仕様のように見える。X-Envelope-To:は見ていないようだ。とすると、(ロ)に対しては期待通り動作するが、(イ)に対しては…?
それと、ユーザ名に基づいてファイル名を作るようなので、前のエントリに書いたような、`mailer prog'の場合にどうなるのか、とか、/etc/aliasesなどで複数のアドレスに展開される場合、ちゃんと動くのか、とか、いろいろ不明な点は多い。
んー、仕様は確定してるから、Rubyで書き起こすかなあ…
Spamass-milter: SpamAssassin-Milter Quarantine More ログイン