在“信封”和“标题”中重复电子邮件地址有什么意义?

TLD*_*LDR 15 email smtp legacy protocol rfc

我了解到,FROM 地址和 TO 地址都在称为“信封”的隐藏元素中重复,然后在“正文”中再次重复。

  1. 为什么不将信封数据复制到“标题”中?
  2. 为什么会存在这种重复,为什么不能将必要的功能嵌入到消息本身中?
  3. 所有(非 SMTP)邮件传输都这样做吗?
  4. 有哪些 SMTP 替代方案?(所以我可以更好地理解推理)

Mic*_*ton 27

电子邮件消息头中的地址与信封发件人和收件人的用途不同(它们本身并不是隐藏的,它们只是不是消息的一部分)。

您从未在邮件中看到的信封发件人和收件人是 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 节)中有详细解释。

简而言之,消息中的发件人:表示消息编写者的邮箱,发件人:表示代表他人发送消息的实体,收件人:和抄送:表示预期的收件人邮箱。RFC 还定义了您可能感兴趣的其他标头字段。

从逻辑上讲,这些类似于打印在一封邮政邮件内的信件上的地址。

通常,信封发件人和收件人与 From: 和 To: 地址相同。但它们之间根本没有通信是很常见的,例如,在邮件列表的情况下。


kas*_*erd 12

您会看到差异的最常见情况是在发送具有多个收件人的电子邮件期间。

假设您要发送电子邮件至:

  • a@example.com
  • 一个@example.net
  • b@example.net

当您的邮件客户端将电子邮件发送到您的邮件服务器时,所有三个地址都将在信封和标题上重复。接下来,您的邮件服务器将查找 MX 记录example.comexample.net继续发送。

您的邮件服务器现在将与每个接收服务器建立两个单独的 SMTP 连接,以进一步发送电子邮件。

当与 MX 通信时,example.com所有三个接收器仍将位于To标头中,但只会有一个包络接收器。

当与 MX 通信时,example.net所有三个接收器仍将在To报头中,但将只有两个信封接收器。

作为上述假设的类比,您打印出三份信件,纸上写有三个收件人。然后,您将这三张纸放入三个单独的信封中,并在每个信封上只写一个地址。


还有其他情况会产生影响,例如在使用bcc和转发电子邮件时。

作为一个稍微做作的模拟,想象你正在与某个实体交换信件。该实体不知道您为您放入信封中的每一封信制作了一份影印件,这些信件寄给您的律师。