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


15

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

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

1
考虑一下“密件抄送”和命名邮件列表。如果将信封收件人复制到标头,则所有这些目的地将变为可见。
Barmar

Answers:


26

在电子邮件标题服务于不同的目的,而不是信封发件人和收件人的地址(这确实不是隐藏本身,他们只是没有消息的一部分)。

信封发件人和收件人(您从未在邮件中看到过)是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还定义了您可能感兴趣的其他标头字段。

从逻辑上讲,这些地址类似于邮政邮件中对应信件上打印的地址。

通常,信封发件人和收件人与发件人:和收件人:地址相同。但是对于他们来说,通常根本没有对应关系,例如在邮件列表中。


12

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

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

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

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

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

与MX通讯时,example.com所有三个接收器仍将保留在To标题中,但只有一个信封接收器。

与MX通讯时,example.net所有三个接收器仍将保留在To标题中,但只有两个信封接收器。

类似于上述想象,您打印了一封信的三个副本,其中三个收件人写在纸上。然后,您将把这三张纸放在三个单独的信封中,并在每个信封上只写一个地址。


在其他情况下,它也会有所作为,例如使用时bcc和转发电子邮件时。

作为一个稍作设计的类比,可以想象您正在与某个实体交换字母。该实体不知道您要创建每个信件的影印本,然后将其放在信封中寄给律师。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.