receivelog にSOCKET_ERRORのコード 0 のエラーが記録されている場合
SMTP受信詳細ログ(receivelog)を取得して、調べている接続セッションを追跡してみると、5分を経過したところで次のエラーが記録されていて、直後に回線が切断されているケースがあります。
get_reply() SOCKET_ERROR OTHER CODE=0
CloseClient Started.:SOCKET.C
closesocket():SOCKET.C
SOCKET_ERRORのコード 0 がログに記録されて直後に回線が切断されているケースでは、SMTP受領時に接続開始してから、その後何らかの理由で、時間がかかっているために、無通信タイムアウトのデフォルト設定値である5分を経過したところで、切断されているパターンが多いようです。
接続開始してから何もアクションがなく、無通信タイムアウトの設定時間に達してしまうと、E-Postは回線切断を行い、その結果としてエラーとなります。メールクライアント側にはE-Postからエラー応答が返されます。
無通信タイムアウトの設定時間に達してしまうのは、大部分はメールクライアント側にその原因があることが考えられます。理論的に考えられるのは、次の3点です。
- DATA命令のあと、メールクライアント側からメール本文データの受信が途中で送られてこない。
- メールクライアント側から本文最後の"."ピリオドが送られていない。
- メールクライアント側から本文最後の"."ピリオドが送られているのに、E-Post側がメールフィルタなどの後処理でひたすら時間がかかっている。
1と2は通常のメーラーを利用している限りはあまり考えられませんが、受信済みや送信済みのフォルダに膨大な数のメールデータを保管しすぎているときには、メーラーの動きがおかしくなることもあるようです。メールクライアントの動きを調べてください。
3については、メールフィルタ設定をしていないのであれば、関係ありませんが、巨大ファイルをメールフィルタ機能でスキャンしていて時間がかかりすぎていないか調べるようにしてください。
無通信タイムアウトの設定時間を延ばして、ようすを見たい場合は、次の設定を行います。
E-Post Mail Server・E-Post SMTP ServerのSMTP受信サービスの無通信タイムアウトの設定値をデフォルト5分から、値を大きくして、無通信タイムアウトを延ばすには、設定ファイルの次の値を変更します。
メール作業フォルダ
->reg
->epost
->ims
->EPST5RS
->Timeout.1
(数値 Default 300)sec 無通信状態タイムアウト
設定ファイルの該当部分に"Timeout"がない場合は作成してください。値は10進、秒単位で入力します。設定ファイルを変更した場合は、epstrdサービスの再起動が必要になります。
(関連FAQ)
●receivelog や pop3log にSOCKET_ERRORのコード、53や54のエラーが記録されている場合