_ sendmail は 8.14 から、postfix は 2.6 から、milter と通信するときのプロトコルバージョンのデフォルトが変わってる。
_ ので、新しい postfix で古いプロトコルバージョンを話す milter と通信するとき、古いバージョンだよと milter_protocol = 2 と設定しなきゃ動かん。なんで動かんのかひじょーにわかりづらいのが困る。sendmail だとそもそもこのバージョンを設定でいじることができないっぽい。え、それどうすんの、困るでしょ、と思ったが、試してみたらなんもいじらなくても動いた。なんで sendmail だけ。差別だ(←たぶん違う)。
_ smtp (届くメール)と submission (送るメール)で異なる milter を使いたい場合、postfix ならば master.cf で -o smtpd_milters=... と個別に設定してやれば簡単に実現できる。が、sendmail ってどうやればいい? ふつーに設定したらどっちも同じ milter が使われるし、cf/README を見てもどこにもそんなこと書いてないし。
_ ……んー、op.me に書いてあった。DaemonPortOptions の引数で InputMailFiltersList=... と書けばいいらしい。cf に生で書くのではなく mc に書くとしたらこんな感じかな。
まだ試してないのでこれで合ってるかどうかは知らない。MAIL_FILTER(`milter-A', `S=local:/path/to/socket-A')dnl INPUT_MAIL_FILTER じゃないよ MAIL_FILTER(`milter-B', `S=local:/path/to/socket-B') DAEMON_OPTIONS(`Port=25, Name=MTA, InputMailFiltersList=milter-A') DAEMON_OPTIONS(`Port=587, Name=MSA, InputMailFiltersList=milter-B')_ まあ、できたとしても、localhost:25 へのアクセスは smtp ではなく submission と同様に扱ってほしいという要望には答えられないわけだが(postfix も同じ)。どうしてもというならば、127.0.0.1 とそれ以外で別個に DAEMON_OPTIONS (postfix ならば master.cf の smtpd のエントリ)を設定すれば、まあできないわけでもないんだけど。めんどくさいんじゃぼけぇ。
_ 閉まりかかってるエレベーターのドアを開けてもらってギリギリ飛びこんでおいて、またドアが閉まりかかったところで、「あー傘忘れたーっ」とやっぱり外に飛び出していく奴。
_ ……ごめんなさい。わたしのことです。
_ 商用製品を採用するかどうか検討するために、評価版を貸してくれ、とベンダーにお願いするはよくあることで、今回もまあそんな流れに。
_ これまでのよくあることとは違ったのは、送られてきたのが製品+評価版ライセンスではなく、そいつがすでにインストールされた Amazon EC2 のホストにログインするためのアカウント情報だったこと。なるほど、そういう使い方があったか。
_ 実のところ、そいつはもう採用しないことにほとんど決まってるのでマジメに評価するつもりなんかないんだけど、せっかくタダで aws の環境にログインできる機会を用意してくれたんだから遊ばせてもらおう。