Postfixで特定ドメイン宛のメールのみ、別のSMTPサーバから送信する。

社内で使っているシステムで、特定のドメインのみ別のSMTPサーバから送信するような設定が必要になったので、これを機にPostfixの設定方法をまとめておく。

することは、

  1. Postfixの設定修正
  2. trapsport.db作成
  3. Postfixへの設定反映

となります。

Postfixの設定修正

/etc/postfix/main.cf

transport_maps = hash:/etc/postfix/transport

を追記して保存する。

trapsport.db作成

/etc/postfix/transport
に配送経路を書きます。
例えば、example.comドメインへのメールはsmtpプロトコルを使って、IPが192.168.10.20のサーバに転送するという設定にしたい場合、

example.com smtp:192.168.10.20

のように書きます。
他の書き方としては、

.example.com smtp:192.168.10.20
example.com smtp:[mail.example2.com]
example.com smtp:mail.example2.com

のようなのもあります。

example.com smtp:192.168.10.20
.example.com smtp:192.168.10.20

の違いは、最初の「.」の有無です。
「.」があるとサブドメインも含むことになります。

example.com smtp:[mail.example2.com]
example.com smtp:mail.example2.com

の違いは、「[]」の有無です。
「[]」があるとMXレコードを使用しないでメールを転送することになります。
/etc/postfix/transport
を編集して保存した後は、

postmap /etc/postfix/transport

を実行して、
/etc/postfix/transport.db
を更新すれば完了です。

Postfixへの設定反映

すべての設定が完了したら、
/etc/init.d/postfix reload

でPostfixに設定変更を反映させます。