外部からメールが届かない、着信していない updated!
外部の相手側からメールが届かない、着信していないという場合、問題を切り分けしていく方法を示します。
- 名前解決に問題がないかの確認
外部ネットワークから接続するときに、名前解決に問題がないかまず確認します。
外部のSMTPサーバがメールを自身のSMTPサーバへ届けるためには、〈アカウント〉@〈ドメイン〉の〈ドメイン〉部分を参照して、このドメインを設定しているDNSサーバの情報より、どのマシンへ接続するかを判定しています。
外部から自身のSMTPサーバへ届かない場合は、自身が公開しているDNSサーバの下記のいずれかについて、「外部のネットワーク」からAレコードおよびMXレコードが正しく参照できるかを確認してください。
まずAレコード登録の有無を調べるには、Windowsマシンのコマンドプロンプトか、メールサーバマシンのターミナルから pingコマンドにて〈ドメイン〉を調べ、応答が返るか否かをチェックします。外部のネットワークから確認するようにします。
次に外部のネットワークからMXレコード登録の有無を調べるには、Windowsマシンのコマンドプロンプトか、メールサーバマシンのターミナルから nslookupコマンドを使い、自身のドメインについて、MXレコードが返されるかどうかを確認します。こちらも必ず外部のネットワークから確認するようにします。
(コマンド入力例)nslookup -type=mx domain.jp
相手側から実際に接続された記録があるか、こちらが何らかの理由で拒絶していないかの確認
相手側から実際に接続されたことがあるか、それとも接続された形跡がまったくないか、接続後にこちらのメールサーバ(E-Post)が何らかの理由で拒絶してしまっていないかという確認作業は、基本的にログから行います。
・acceptlog(接続マシンログ)
・receivelog(SMTP受信詳細ログ)
相手側に実際に接続されたことがあれば、acceptlog(接続マシンログ)に記録されます。接続後の結果は、abortかokかのどちらかです。仮に一つも記録が見つからない場合、一度も接続された形跡がないということになります。この場合、メールサーバ以前の名前解決や経路上の問題ということになってしまいます。
acceptlog(接続マシンログ)にabortされている記録がある場合、その詳細理由を知るにはreceivelog(SMTP受信詳細ログ)を調べます。拒絶の理由(エラー番号とエラー応答内容)が出ていればその内容を確認します。出ないケースもありますので、詳細は下記のFAQ記事を参照してください。
receivelog(SMTP受信詳細ログ)は重要なログですので、取得されていないときは関連記事をご参考の上、取得するようにしてください。
(関連FAQ)
●接続マシンログ(acceptlog)について
●SMTP受信詳細ログ(receivelog)について
●接続マシンログ(acceptlog)で abort されている理由を知るには
●acceptlogにメッセージIDが出ているのにreceivelogに見つからないケースがある理由