Postfixのmulti-instanceについて。

職場でこれをやりたかった。。。ようはPostfix(MTA)で複数起動したい場合どうするか、です。
送信元によって、ただリレーホストへ配送する先を変えたかっただけなんです。。。

10025ポート増やすだけならmaster.cfに-oで増やすという手もありますが、どうしても共通のMTAだと意図しない動作があったとき大変なので、ちょっと憂慮します。。。

シチュエーションは、25ポートは特定のリレーホストへ配送する、10025ポートは専用のリレーホストへ配送する、などです。
具体的には、/etc/postfix/main.cfに下記があるとマルチインスタンスとして動作します。

[/etc/postfix/main.cf]
multi_instance_enable = yes

その後
#postmulti -I postfix-out -G mta -e create

こうすることで、/etc/postfix-out/main.cf など別管理のpostfixを動作させることができます。
詳細は
ここを参照してください。

しかし。
postfix multiが使えるversionが入っていれば、の話なんです。
入っていない場合どうするか。もうほんといやこういうのw

ということで、苦肉の策ですが「送信元アドレスが特定のアドレスのみリレーをこっちにする」という方法で、下記のようにします。

例:送信元アドレスが、mail.example.jpの場合、リレーホストをxx.xx.xxx.xxx:25にしたい。


[/etc/postfix/allow_sender]
mail.example.jp FILTER smtp:[xx.xx.xxx.xxx]:25

main.cfに下記を付け加える。


[/etc/postfix/main.cf]
smtpd_sender_restrictions = sender_check
smtpd_restriction_classes = sender_check
sender_check = check_sender_access hash:/etc/postfix/allow_sender

あとは、fromアドレスを上記 mail.example.jp にした場合のみ、特定のリレー先へ配送する仕組みになります。
テスト配送をしてみて、うまく意図したリレーがされるか確認してみてください。


echo "テスト本文" | mail -s "test mail from mail.example.jp" test@example.jp -- -f sendonly@mail.example.jp