senderlogにデータ送信途中で"socket error code=54"が複数回続けて記録される理由とリトライの挙動について
senderlogにデータ送信途中で"SendData (socket error code=54)"のsocketエラーコードが複数回続けて記録されて、最終的にセッションが閉じエラーのリターンメールを生成して終わっている場合、推測される理由とそのときのリトライの挙動について説明します。
(例)
[19:36:50:193] [B0000999999] SendData (socket error code=54)
[19:36:50:193] [B0000999999] SendData (socket error code=54)
[19:36:50:193] [B0000999999] SendData (socket error code=54)
:
※54のsocketエラーコードを複数回続けて記録、最終的にエラーのリターンメールを生成し終了
senderlogにデータ送信途中で記録されている"SendData (socket error code=54)"は、単なるネットワーク接続廃棄を意味する"=53"とは異なり、相手側による切断、ネットワーク破棄を意味します。相手側による意図的な切断があったと解釈はできますが、くわしいことは先方のサーバや機器の事情を調べてみない限り詳細な理由はわかりません。発生が一時的なもので、その後は正常に送信できている場合でしたら特に心配することはないと考えられます。
上記の例のように複数回出力されたのは、E-Postのepstddサービスがシステム的に接続復旧のためのリトライを行っていることになります。E-Post側でシステム的な接続復旧のリトライを行ってもダメだったので、最後にはあきらめてエラーのリターンメールを生成した結果になっているのが上記の例です。
一方、E-POST コントロールセンター(メールサーバ管理)の[SMTP送信詳細]を開いて表示される「SMTP送信詳細設定」画面にある「配送のリトライ」については、「受信拒否」「回線異常」「サーバ無応答」のいずれの条件に当てはまらないときには、配送リトライが実行されず配送リトライの対象外となるケースが存在します。
具体的に言うと、相手側である送信先MTAのエラー応答コード400番台や500番台を受け取れないときは、「受信拒否」「回線異常」各々に設定されている配送リトライは実行されません。また最初の接続時点で相手サーバが応答してセッションが進行している状態でセッション途中で相手から強制切断された場合も「サーバ無応答」で設定されている配送リトライがやはり実行されないことになります。