sendmailでメール配送時に配送先サーバ指定

sendmail結構はまりますね・・・cfやらmcやらdefやらどうすれば。

MXレコードに関係なくメール配送先サーバを指定

通常、メールを配送するときの配送先はDNSに配送先ドメインを指定して問い合わせ、MXレコードに指定されていたサーバに対して配送します。ですがMXに定義されているIPアドレスはグローバルIPアドレスであることが殆どであるため、Lan内などで下手に問い合わせるとグローバルIPに対しての送信>FW、ルータなどに阻害というワナが待っています。。。

ドメインを見て配送先メールサーバを固定

ここでは、sendmail 8.12.1を例にします。インストールすると、/etc/mailあたりに各種設定ファイルが置かれていることかと思われますが、この中の「mailertable」というファイルに定義をします(mailtertable.sampleのみで無い場合もある)。
このファイルに一定形式でドメインと配送先を記述してmake mapsでOkです。

<記述例> (localdomain.jpアカウント宛てのメールは192.168.0.2に配送させる)
localdomain.jp smtp:[192.168.0.2]

IPアドレスを[]で囲んでいるのは、そうするとsendmailはアドレスをDNSに問い合わせにいかないようになるからです。逆に囲まないと、「192.168.0.2」という「ドメイン名またはホスト名」と解釈し、DNSで「正引き」しようとします。当然見つかるはずもなく、「host unknown」というエラーメールが生成される羽目になります。

TIPS INDEXへ
Last modified: Sun Mar 02 17:03:56 東京 (標準時) 2003