_ その昔、postfix-jp に こんなメールを投げた。複数の IP アドレスを持っているホストが送信元のアドレスによって src ip を使いわけるにはどうすればいいか、という話。
_ 今さらながらやってみた。
_ master.cf
main.cfsmtp-a unix - - n - - smtp -o smtp_bind_address=192.168.1.1 smtp-b unix - - n - - smtp -o smtp_bind_address=192.168.1.2sender_filtersmtpd_sender_restrictions = check_sender_access hash:sender_filterfrom: example.com のメールを投げると、FILTER smtp-a: が発動し、192.168.1.1 を src ip としてメールを投げる。コンテンツフィルタじゃないものをフィルタとして設定してるけど、まあ細かいことは気にしない。きっとうまくいくよね!example.com FILTER smtp-a: example.net FILTER smtp-b:_ 結果。撃沈。動きません。mail loops back to myself でバウンスしてしまう。FILTER smtp-a:nexthop のように次段を指定してやれば期待どおり動くが、nexthop の指定なしだとなぜか受信者アドレスの MX ではなく myhostname に配送しようとするようだ。transport_maps と content_filter は同じ書式だけど、nexthop を省略したときの動作までは同じじゃないってことなのね。
_ ちなみに、sender_dependent_relayhost_maps は使えない。目的は sender dependent で relayhost を変更することではなく、relay_transport を変更することなので。つーか、なんで trasnport_maps その他では transport:nexthop を一緒に指定するのに、relayhost にかぎっては relay_transport が分離してんのさ? わけわからん。
_ となると、やはり禁断の sender_based_routing に手を出すしかないのか。
_ ……まったく動作しないよ?
_ ソースを grep してみたら消えてるよ。昔から正式バージョンではなく snapshot 版にしか存在しない、しかもドキュメントには使うな、の一言しか書いてないという危険な臭いのするパラメータだったけど、いつのまにやら snapshot からもドキュメントの記述だけ残してコードがごっそり消えてるよ。なんてこったい。
_ ってことは、送信者ごとにソースアドレスを変えてメールを送るってことは、今のバージョンの postfix ではできないってことか。うーん。
_ 複数ドメインが同居するホストで出口の IP アドレスを共有していると、SPF を書いたとしても同居ドメイン間では from 詐称が可能だし、万が一あるドメインの不手際でどこかの DNSBL に載ったら同居全ドメインに影響がある。出口を分離できればこのへんを一気に解決できてシアワセなんだけど、そううまくはいかんか。
_ smtp_bind_address を条件によって切り替えてメールを送るウマい方法を思いついた方、ご一報ください。
_ ここ数日、うちの親と「メールアドレス変えたか? 変えたらちゃんと連絡せんか」「いや、変えてないよ」「いや、変わってるでしょ」「変わってないっつーの」というやりとりをメールでやってる。このやりとりに使ってるメールアドレスはいったい何なんだろうか。うちの親はいったいどのアドレスに送ってるんだろうか。そろそろ本気でボケ具合を心配せにゃならんようになったんだろうか。
_ ふと目を離したすきに、WinXP なノート PC が青画面で死んでた。
_ ンモー、久しぶりに落ちたなー、と再起動したら、起動中に固まった。もいっかい再起動したらまた死んだ。何度繰り返しても固まる。わしの顔もブルースクリーン。今うちでまともに動く PC ってこれ1台だけなんだけど。バックアップも何もないし。
_ とりあえず放心して梨なぞ食ってたら、そういえば Windows にはセーフモードなるものがあることを思いだした。最近お世話になってなかったからすっかり忘れてた。つーか忘れんな。
_ ……なんとか復活したっぽいぞ。ほんとに大丈夫なのかどうかまだ不明だが。怖いのでバックアップを取っておきたいけど、バックアップ先の別マシンもディスクもメディアもないぞ。備えがなってない。