20082


192.168.100.XXXのローカル環境でメールサーバを構築しました。

GUI上ではメールの送受信は問題なくおこなえています。  
・メールサーバマシン1台  
・メールクライアントマシン1台

GUI上のメーラーでクライアントからサーバに送信すると、  
サーバ側の/var/log/maillogに送信ログがはかれています。

しかし、コマンドライン上で、sendmail hoge@mailsvr.local  
を実行してメール送信すると、サーバ側のメーラーにはメールが届きません。

しかも、クライアントマシン側の/var/log/maillogにログが  
はかれてしまっています。

以下、クライアントマシン側にはかれてしまったログの内容

[code]

    Dec1617:42:45 mailcli-01 postfix/pickup[7294]: 1BC409F50D: uid=502 from=<cliuser01>
    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=<cliuser01@mailcli-01.local>, size=335, nrcpt=1 (queue active)
    Dec 16 17:42:45 mailcli-01 postfix/smtp[7871]: 1BC409F50D: to=<svruser01@mailsvr-01.local>, 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 
    
[/code]

考えられる理由を、ご教授いただけないでしょうか。  
よろしくお願いいたします。


CC BY-SA 3.0
2015-12-16T06:16:14.727
20055
2015-12-16T15:58:07.763
2015-12-16T09:26:44.717
5008
13426
question
postfix
postfixのsendmailコマンドでメール送信できない


クライアント(mailcli-01)のコマンドラインから sendmail コマンドでメールを送る場合、mailcli-01 の postfix
の設定が必要です。  
デフォルトの設定では DNS の MXレコードを調べて配送先メールサーバーを決めるようになっていると思います。

現状では「mailsvr-01.local」ドメインの MXレコードが見つからないので、status=deferred
(一時的なエラー)となり、メールを配送できず、mailcli-01 のメールキューに溜まります。

「mailsvr-01.local」ドメインの
DNSサーバーが必要ですが、そういう大掛かりなものではなく、単純に上位メールサーバー(SMTPサーバー)に送るのであれば、relayhost または
transport_maps の設定で可能と思います。


CC BY-SA 3.0
2015-12-16T09:31:13.513
20065
2015-12-16T09:31:13.513
4603
20055
answer


別解として回答します。

SMTPリレーが失敗してますが MUA からの SMTP
送信は成功してますので、もしも、SMTPリレーが必ずしも必要なく、コマンドラインからメール送信できれば良い、という事であれば、mailx
コマンドでSTMP送信すればいいと思います。

設定ファイルにSMTPサーバー、必用であれば認証等を記述 (項目は man mailx で確認してください)

[code]

    $ vi ~/.mailrc
    set smtp=smtp://mailsvr-01.local:25
    set smtp-auth=login
    set smtp-auth-user=xxxx
    set smtp-auth-password=xxxxx
    
[/code]

送信

[code]

    $ mail -s "Mail Test" svruser01@mailsvr-01.local < mail.txt
    
[/code]


CC BY-SA 3.0
2015-12-16T14:03:30.703
20082
2015-12-16T14:03:30.703
5008
20055
answer


Postfix は、デフォルトでは自身で宛先ドメインの MX を DNS で検索しようとするので、該当する MX RR
が索けない場合は提示されているログのように `MX: Host not found` になり一時エラー、最終的にはバウンスします。

メールクライアントマシンの Postfix のメール配送において、自身で MX
の解決はせず、すべてのメール配送をメールサーバーマシンに依頼したいということであれば、`main.cf` にでも `relayhost =
[メールサーバーのホスト名]` あるいは `relayhost = [メールサーバーのIPアドレス]`
とすればいいです。これにより、自ホスト宛でないメールはすべてメールサーバーに配送されるようになります。

もちろん、メールサーバーの Postfix では、mailsvr-01.local
ドメイン宛のメールをリレーあるいはローカル配送するようにする、もしくはメールクライアントホストからのメールリレーを許可する必要があります。


CC BY-SA 3.0
2015-12-16T15:51:36.090
20084
2015-12-16T15:58:07.763
2015-12-16T15:58:07.763
3061
3061
20055
answer