メールのヘッダフィールド・マニアックス: ボディ
最終更新:
diveintounlimit 2009年10月14日(水) 15:57:26履歴
以下は、ヘッダではなくボディ、つまり本体に記述されるフィールドです。
DSN(Delivery Status Notifications)関連のフィールド。
以下がサーバ間のやり取り用フィールド。
そして以下が配達通知メッセージ用フィールドです。最後の二つは、順不同です。
以下がサーバ間のやり取り用フィールド。
- Original-Envelope-Id:
- 元のメールのID
- Reporting-MTA:
- 配達通知メッセージを作成したメールサーバ。
必須。 - DSN-Gateway:
- 他の形式の配達通知メッセージをこの形式に変換したメールサーバ
- Arrival-Date:
- 配達通知メッセージを作成したメールサーバに到着した時刻。
相手の所に到着した時刻ではない点に注意。
そして以下が配達通知メッセージ用フィールドです。最後の二つは、順不同です。
- Original-Recipient:
- 元のメールの受け取り相手
- Final-Recipient:
- 最終的な受け取り相手
- Action:
- 最終結果。
値は"failed"(配送失敗)、"delayed"(配送が遅れているが、もしかしたら届けられるかも)、"delivered"(配送成功)、"relayed"(メールは配達通知メッセージ生成不能なサーバに移りました)、"expanded"(メールはそこから更にどこかに転送されました)。
必須。 - Status:
- 配達状況を示す数字の羅列
必須。 - Remote-MTA:
- 配達通知メッセージを生成できるメールサーバへ配達状況を伝えたメールサーバ
- Diagnostic-Code:
- 「Action:」が"failed"か"delayed"の場合、診断コードが記述されます。
- Last-Attempt-Date:
- 最後に、相手のメールサーバへメールを渡すべく試行された時刻。
配達エラーにしようか、どうしようかという判断基準にされます。 - Will-Retry-Until:
- 「Action:」が"delayed"の場合のみ、最終的な送信試行時刻
- Diagnostic-Type:
- 「Diagnostic-Code:」にどのタイプの診断コードが記述されているか
- Final-Log-ID:
- ログのID。
メールサーバ内のログの索引として役に立ちます。
SFH(Simple Forwarding Header)。ヘッダと言うけどヘッダフィールドには含まれません。
送信されるレポートの内容部分の記述方法です。
と、最後に拡張フィールドとなります。
以下はOutlookExpress6が書いたもの。
- Reporting-UA:
- 開封確認通知を作成したメーラの名前が記述されます。
書くことが推奨されています。 - MDN-Gateway:
- 他の形式の開封確認通知がこの形式の開封確認通知メールに変換された場合のみ、その変換したものの名前が記述されます。
ですから通常は現れません。 - Original-Recipient:
- 元のメールにOriginal-Recipient:ヘッダフィールドがある場合のみ、それをそのまま持って来ます。
- Final-Recipient:
- 開封確認通知メールの受け取り相手が書かれています。そのメール自身のFrom:ヘッダフィールドからそのままコピーするのだそうです。
必須。 - Original-Message-ID:
- 元となるメールのMessage-IDが記述されています。
- Disposition:
- 形式は、
manual-action: 手動で作成された事を示します。
automatic-action: 自動的に作成された事を示します。
にスラッシュ(/)が続き、それの後ろに、
MDN-sent-manually: 作成した/された通知メールを相手が意図して送信した事を示します。
MDN-sent-automatically: メーラに予めそういう設定がなされていて、自動的に送信された事を示します。
で、セミコロン(;)が間に入って、
displayed: メールの内容は取り敢えず誰かに表示されました。見てもらいたい相手に読んでもらったことは示しません。
dispatched: 表示されたかどうかは判りませんが、何らかの方法で相手に届きました。
processed: メールは相手に届くことなく、何らかの方法で処理されました。しかし相手がメールを見る可能性はあります。
deleted: メールは削除されてしまいました。しかし相手はゴミ箱から引っ張り出して読んでいるかもしれません。
denied: どうやら相手は開封確認通知メールをいやがっているようです。
failed: 通知メールの生成に失敗してしまったようです。
となります。
オプションで、カンマ(,)の後ろに更に、
error: 処理する際に何らかのエラーが発生しました。
warning: 何とか処理できましたが、何か困った事が起こってしまいました。
superseded: 他のメールが届いて、そのメールはもう古いものになってしまいました。
expired: メールは期限切れになり、自動的に削除されてしまいました。
mailbox-terminated: そのメールアドレスは使用できなくなり、メールはその際に処分されてしまいました。
で、スラッシュの後ろに格調修飾子というものが続く場合があります。
必須。 - Failure:
- Disposition:フィールドで"failure"が指定されたときに、付加的な情報を提供するテキスト(どう失敗したのか)を記述します。
- Error:
- Disposition:フィールドで"error"が指定されたときに、付加的な情報を提供するテキストを記述します。
- Warning:
- Disposition:フィールドで"warning"が指定されたときに、付加的な情報を提供するテキストを記述します。
と、最後に拡張フィールドとなります。
以下はOutlookExpress6が書いたもの。
Final-Recipient: rfc822;xxxx@xxxx大体正解。でもまだRFC822なのですね(^^; で、自動で返信させた場合のみこんな具合。
Original-Message-ID: <xxxxxxxxx>
Disposition: manual-action/MDN-sent-manually; displayed
Disposition: manual-action/MDN-sent-automatically; displayedオイオイ(^^;
automatic-action/MDN-sent-manually; displayedではないのですか?
タグ
このページへのコメント
hx8RVL Major thankies for the post.Much thanks again. Really Great.
7ff6vJ I really like and appreciate your article.Really looking forward to read more. Will read on...