質問: 192.168.100.XXXのローカル環境でメールサーバを構築しました。 GUI上ではメールの送受信は問題なくおこなえています。 ・メールサーバマシン1台 ・メールクライアントマシン1台 GUI上のメーラーでクライアントからサーバに送信すると、 サーバ側の/var/log/maillogに送信ログがはかれています。 しかし、コマンドライン上で、sendmail hoge@mailsvr.local を実行してメール送信すると、サーバ側のメーラーにはメールが届きません。 しかも、クライアントマシン側の/var/log/maillogにログが はかれてしまっています。 以下、クライアントマシン側にはかれてしまったログの内容 ``` Dec1617:42:45 mailcli-01 postfix/pickup[7294]: 1BC409F50D: uid=502 from= Dec16 17:42:45 mailcli-01 postfix/cleanup[7884]: 1BC409F50D: message-id=<20151216084245.1BC409F50D@mailcli-01.local> Dec 16 17:42:45 mailcli-01 postfix/qmgr[7295]: 1BC409F50D: from=, size=335, nrcpt=1 (queue active) Dec 16 17:42:45 mailcli-01 postfix/smtp[7871]: 1BC409F50D: to=, relay=none, delay=1.6, delays=1.6/0/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=mailsvr-01.local type=MX: Host not found, try again) ? bird 40 ``` 考えられる理由を、ご教授いただけないでしょうか。 よろしくお願いいたします。
回答: Postfix は、デフォルトでは自身で宛先ドメインの MX を DNS で検索しようとするので、該当する MX RR が索けない場合は提示されているログのように `MX: Host not found` になり一時エラー、最終的にはバウンスします。 メールクライアントマシンの Postfix のメール配送において、自身で MX の解決はせず、すべてのメール配送をメールサーバーマシンに依頼したいということであれば、`main.cf` にでも `relayhost = [メールサーバーのホスト名]` あるいは `relayhost = [メールサーバーのIPアドレス]` とすればいいです。これにより、自ホスト宛でないメールはすべてメールサーバーに配送されるようになります。 もちろん、メールサーバーの Postfix では、mailsvr-01.local ドメイン宛のメールをリレーあるいはローカル配送するようにする、もしくはメールクライアントホストからのメールリレーを許可する必要があります。