外部へメールが配送がされない


外部へメール配送されない場合は、以下の点を確認してください。
以下の手順にて、DNS回りや相手側の拒絶、通信経路に絡む問題を順次、調ベてください。
  1. E-Post Mail Control画面の[サーバー設定]タブにある「DNSサーバー」項目に利用可能なDNSサーバのIPアドレスを設定済みですか?
    また、Windowsのネットワーク接続「ローカルエリア接続」で設定する「DNSサーバー」にも利用可能なDNSサーバのIPアドレスが設定されていますか?

    この2つの設定項目は、メールサーバが送信時に名前解決をするときに参照されますが、参照されるタイミングが異なります。
    E-Post Mail Server/E-Post SMTP Serverシリーズでは、リトライ毎に、MXレコード1→MXレコード2→Aレコードと順番に参照しますので、両方のDNSサーバー項目が正しく設定されていることを前提にしています。

  2. 設定したDNSサーバは、外部ドメインのMXレコードを正しくキャッシュしていて、名前解決ができるようになっていますか?
    メールサーバを設定したマシンから、直接コマンドプロンプトを開き、nslookupコマンドで確認してください。
    以下のように配送先のドメインの応答がされれば、使用しているDNSは正しく参照されています。名前解決ができなければ、DNSを参照できないか、設定に問題があります。

    (太字部分をユーザーが入力 abcd.ne.jpは架空のドメイン)
    nslookup [Enter]
    Default Server: ns.xxx.co.jp
    Address: xxx.xxx.xxx.xxx
    set type=mx [Enter]
    abcd.ne.jp [Enter]

    Server: ns.xxx.co.jp
    Address: xxx.xxx.xxx.xxx

    abcd.ne.jp MX preference = 5, mail exchanger = mail.abcd.ne.jp
        :
    exit [Enter]

    ※または nslookup type=mx abcd.ne.jp [Enter] と一度に引数付きで入力することも可能です。

  3. 上で確認することができたMXレコード宛に、TELNETコマンドでSMTPポートへ接続できるか試してください。メールサーバを設定したマシンから、確認します。(※)
    何の応答もないときは、相手側サーバーか到達するまでの経路上に問題があります。

    (太字部分をユーザーが入力 abcd.ne.jpは架空のドメイン)
    telnet mail.abcd.ne.jp smtp [Enter]
    220 OK

    quit [Enter]
    221 abcd.ne.jp Service closing transmission channel

    ※応答メッセージに長短があったり、メッセージの文言は、相手のメールサーバ種類や設定内容により、一律ではありません。ただし、RFCで規定された応答コードについては、どのようなサーバでも原則は同じです。
    ※OP25Bを実施している回線上のクライアントマシンからは、原理上、SMTPの25番ポートではつながりません。OP25Bが実施されていない回線上のメールサーバマシンから、接続できるかどうかを試すようにしてください。

  4. TELNETでSMTPポートへ通信でき、接続できるにもかかわらず、実際のメールで拒絶されてしまう場合は、相手SMTPサーバが、送信しようとするメールに対して何らかの拒否設定がされている可能性があります。[配送時の詳細ログ](senderlog)[配送失敗ログ](faillog)を有効にして、ログを取得してください。ログを精査することによって、相手側から拒絶されている理由を探ります。ログを取得しないでも、相手先に問い合わせできたり、調べられるときは、そうした情報を確認します。

    [確認事項]
  5. [配送の詳細ログ](senderlog)に理由のわからない"code=0/0"や"error=10054"が記録されているときは、次の2つの例を参照してください。

    (例1)通信手順中に「451 Requested action aborted: error in processing. (code=0/0)」が記録されている場合

    この記録があるとき、回線上で通信ができない、または回線が混雑のため、通信タイムアウトが発生している可能性があります。
    "code=0/0"は、無通信タイムアウトや、セッションを相手が切ったために、メールサーバー内部処理において自動作成した応答コード&メッセージです。

    [対処方法]
    下記のレジストリ設定値を変えることで、無通信接続タイムアウト時間を変更できます。無通信接続タイムアウト時間を少し延ばしてようすをみます。
    無通信接続タイムアウト時間は、レジストリのキーを手動で登録することで調整可能です。キー値がない場合、デフォルトで1200秒(=約20分)の設定になっています。

    HKEY_LOCAL_MACHINE
     ->SYSTEM
      ->CurrentControlSet
       ->Services
        ->EPSTDS         (KEY)
         ->SendDataTimeout  (DWORD)sec 送信1回当りのタイムアウト時間
                    キー値がない場合=デフォルト 1200sec
         ->RecvDataTimeout  (DWORD)sec 応答1回当りのタイムアウト時間
                    キー値がない場合=デフォルト 1200sec
    DWORDの数値は10進で入力します。設定値を変更した後は、EPSTDSサービスを再起動してください。

    (例2)データ送信中に「SendData error=10054」が記録されている場合

    code=10054や、error=10054 は、WINSOCKのエラーコードであり、Socket error が起きていることを表わしています。
    この Socket error が発生するときは、回線エラーであったり、無通信タイムアウトで通信ができない状況が発生している可能性があります。さらに、SMTPプロトコルレベルではなく、物理層に近い別の層でトラブルが起きている可能性もあります。つまり、通信の経路や通信環境の問題、OSやハードウェア絡みのトラブルが原因となっているケースもあり得ます。

    [BXXXXXXXXXX] SendMailMess:354 Start mail input; end with <CRLF>.<CRLF>
    [BXXXXXXXXXX] SendData error=10054
    [BXXXXXXXXXX] :
    [BXXXXXXXXXX] :
    [BXXXXXXXXXX] SendData error=10054

    code=10054やerror=10054は、WINSOCKのエラーコード(WSAECONNRESET)です。これ以外のコードはWinsockエラーコード表を参照してください。

    データ送信時に「相手側で切断」された場合のこれらの理由コードですが、通信環境を見直すとともに、前述した無通信タイムアウト時間を延ばすなどの方策を取って、ようすを見てください。
(関連FAQ)
配送時の詳細ログ(senderlog)について
配送失敗ログ(faillog)について
senderlog と faillog に記載された配送失敗の理由が異なる
senderlogにデータ送信途中で"socket error code=10054"や"=10053"のようにWINSOCKのエラーコードが記録される場合
senderlogに"451 Requested action aborted: error in processing. (code=0/0)"が記録される場合の対処策
senderlogに"421 Service Temporarily Unavailable"と"451 Requested action aborted: error in processing. (code=0/0)"が記録される理由について
senderlogに送信リトライのたび"socket error code=10060"のエラーが記録される場合
WINSOCKエラーコード表