web-dev-qa-db-ja.com

「The Envelope」と「The Header」でメールアドレスを繰り返す意味は何ですか?

FROMアドレスとTOアドレスの両方が「エンベロープ」と呼ばれる非表示要素で繰り返され、その後「本体」で再び繰り返されることを学びました。

質問

  1. エンベロープデータが「ヘッダー」にコピーされないのはなぜですか?
  2. なぜこの重複が存在するのか、なぜ必要な機能をメッセージ自体に埋め込めないのか?
  3. すべての(非SMTP)メッセージトランスポートはこれを行いますか?
  4. SMTPに代わるものは何ですか? (だから私は推論をよりよく理解することができます)
15
TLDR

電子メールメッセージヘッダーのアドレスは、エンベロープ送信者と受信者(実際には非表示ではない自体)とは異なる目的を果たしますが、それらは単に一部ではありませんメッセージの)。

メッセージには表示されないエンベロープ送信者と受信者は、SMTPプロトコルの一部であり、配信指示、つまりどのメールボックスに送信するかを指定しますメールサーバーは、メッセージを配信するか、または何らかのエラーが発生した場合にメッセージを返す場所を想定しています。どちらのアドレスも、メッセージのセマンティックコンテンツと関係がある必要はありません。これらは RFC 5321 セクション4.1.1.2および4.1.1.3で詳細に説明されています。

論理的には、これらは郵便物の封筒に印刷された住所に類似しています。

メッセージ自体に表示される発信元と宛先のアドレスは、明示的な配信指示ではなく、意味的な意味を示します。これらは RFC 5322 セクション3.6.3および RFC 6854 セクション2.1(RFC 5322セクション3.6.2に置き換わりました)で詳細に説明されています。

簡単に言うと、メッセージのFrom:はメッセージを書いた人のメールボックスを示し、Sender:は他の誰かの代わりにメッセージを送信したエンティティを示し、To:とCc:は目的の受信者のメールボックスを示します。 RFCは、関心のある他のヘッダーフィールドも定義します。

論理的には、これらは郵便の一部の中にある通信に印刷された住所に類似しています。

多くの場合、エンベロープの送信者と受信者はFrom:およびTo:アドレスと同じです。しかし、たとえばメーリングリストの場合など、彼らがまったく連絡をとらないことは一般的です。

26
Michael Hampton

違いが見られる最も一般的なシナリオは、複数の受信者がいる電子メールの配信中です。

次の宛先にメールを送信しようとしているとします。

メールクライアントがメールサーバーにメールを送信すると、3つのアドレスすべてがエンベロープとヘッダーの両方で繰り返されます。次に、メールサーバーがexample.comおよびexample.netのMXレコードを検索して、配信を続行します。

メールサーバーは、受信サーバーのそれぞれと2つの個別のSMTP接続を確立して、さらに電子メールを送信します。

MX for example.comと通信する場合、3つのレシーバーはすべてToヘッダーに含まれますが、エンベロープレシーバーは1つだけです。

MX for example.netと通信する場合、3つのレシーバーはすべてToヘッダーに含まれますが、エンベロープレシーバーは2つしかありません。

上記と同様に、3人の受信者が紙に書かれた手紙を3部印刷したとします。次に、これらの3枚の紙を3つの別々の封筒に入れ、各封筒に1つの住所のみを書き込みます。


bccを使用する場合や電子メールを転送する場合など、違いが生じるシナリオは他にもあります。

少し工夫されたアナログとして、あるエンティティと文字を交換していると想像してください。その実体は知らないので、弁護士宛の封筒に入れた手紙それぞれのコピーを作成します。

12
kasperd