outlogやoutlocallogを確認すると“B”で始まる「B000〜」の連番について抜けがあるが問題はないか new!

outlog や outlocallog を確認した際に、“B”で始まる「B000〜」の連番(メッセージID)について、番号の抜け(欠番)が見受けられるが問題はないか、というご質問をいただいたことがあります。

例:「B0000000088」の次の行が「B0000000091」

結論として、特定のログ(outlog、outlocallog)だけを見て連番が飛んでいることは正常な動作です。
E-PostシリーズのメッセージID(B+連番)は、SMTP受領のタイミングで1通ごとに付与される通し番号です。各ログには「そのログが対象とする処理に該当したメール」だけが記録されるため、1つの配送系ログ(outlog、outlocallog、senderlog など)だけを見ると、全メールの一部分しか載らず、番号が飛んで見えることがよくあります。
問題があるかどうかは、順番にログを確認して「欠番」を調査したうえで判断します。
まず前提として、E-Postのメール処理は次の2段階に分かれています。

第一段階:SMTP受領 → EPSTRS が外部からのメールを受け取り、受信キュー(incoming)へ格納します。
     (acceptlog、inlog、receivelog)
第二段階:SMTP配送 → EPSTDS が受信キューのメールを宛先へ配送します。
     (outlog、outlocallog、senderlog、faillog)

このうち outlocallog は、第二段階で「内部ドメイン宛」へ配送したメールの記録です。一方、outlog は「外部ドメイン宛」へ送信したメールの記録です。たとえば、outlocallog に「欠番」がある場合、その番号は次のどちらかに該当します。
・(A)第一段階の受領で拒絶(abort)され、そもそも受信・配送されなかった。
・(B)第一段階で受領OK(ok)だが、配送段階で「外部ドメイン宛」に配送された、配送に失敗した、またはまだ配送中である。
該当のメッセージIDが、目的に応じて下記いずれかのログに記録されていることが確認できれば、問題ありません。

【確認手順】
ステップ1:「欠番」となっているメッセージIDを控えます。

ステップ2:受領されたかどうかを確認する。
      inlog(SMTP受信ログ)に該当IDがあるか確認します。
      記録あり → 正常に受領されています。ステップ3へ。
      記録なし → 受領されなかった可能性が高い。次の acceptlog で確認します。
      acceptlog(接続マシンログ)で、該当の接続が「ok」か「abort」かを確認します。「abort」であれば受領拒絶です。
      拒絶理由の詳細は、receivelog(SMTP受信詳細ログ)で追跡します。「abort」された時刻と接続元IPアドレスを控え、receivelog でその時刻・IPのセッションを確認します。

※拒絶(abort)されたメールは inlog には記録されません。abort の記録は acceptlog と receivelog に残ります。

ステップ3:inlog に該当IDあり=受領OKの場合、配送先・配送結果を確認する。
      外部ドメイン宛に配送された → outlog(SMTP送信ログ)に記録されます。配送処理の詳細は senderlog(配送処理の詳細ログ)で追跡できます。
      内部ドメイン宛に配送された→outlocallog(SMTP送信ローカルログ)に記録されます。配送処理の詳細は senderlog(配送処理の詳細ログ)で長い出力設定をしているときにある程度部分的に該当メッセージIDが記録され追跡できます。短い出力設定のときは該当メッセージIDの記録は2,3行のみしか出力されずほとんど記録されません。
      配送に失敗した → faillog(配送失敗ログ)に応答コード・理由とともに記録されます。
      まだ配送が完了していない(再送待ち)→ senderlog にリトライ処理(RetryDomain など)が記録されます。

いずれかのログで該当IDが確認できれば問題ありません。

(関連FAQ)
●メーリングリストに登録されているアドレスに配送されているか、未登録のアドレスに配送されていることはないか、どのようにしてログで確認できるか
●配送できなかったメールをログで確認する方法
●該当メールをログから探し出す基本的な方法と手順
●配送時の詳細ログ(senderlog)の仕様とログの長/短出力設定