为什么发送给我的电子邮件和列表没有出现两次?

为什么发送给我的电子邮件和列表没有出现两次?

假设我加入了[email protected]。我的朋友给我发了一封电子邮件,她还抄送了[email protected]。我天真地以为这封电子邮件会在我的收件箱中出现两次,但(谢天谢地!)它只出现了一次。

问题 1:哪个智能程序能判断出我实际上只想查看一封电子邮件的副本?是我的本地电子邮件客户端、服务器、列表服务器还是其他程序?

问题2:这个小小的魔法是如何实现的?它是更普遍的优化的一部分吗?是否有类似的魔法在幕后运行,让电子邮件变得更加顺畅?

如果相关的话,我在 Linux 上使用 Thunderbird。

答案1

在这种情况下,几乎肯定是列表服务器决定不向已经是直接收件人的人发送电子邮件。

我之所以这么说,是因为列表服务器是仅有的可以访问的点全部收件人。

  1. 如果您收到来自两个来源的电子邮件,那么您的电子邮件客户端将只会看到一封来自您的朋友的电子邮件[email protected]和另一封来自您的朋友的电子邮件,它不能保证它们不是同一封消息,因为它们具有不同的标题和不同的来源。
  2. 您的朋友的电子邮件服务器不知道您是否属于列表服务器组的一部分,因此必须尽职尽责地尝试向两者发送邮件。
  3. 列表服务器将收到一封来自您朋友的电子邮件,其中包含列表地址和您的地址。该服务器知道您是列表的一部分,并且是唯一知道这一点的服务器。它可以看到您是收件人,并且假设上述第 2 点,您已经收到了一份副本。

因此这个“魔法”是由列表服务器处理的。

针对您关于列表服务器为何“假设”您朋友的邮件服务器运行正常这一问题,答案是“因为它收到了邮件的副本”。它只能假设发件人发送了所要求的内容,而不能对互联网上其他设备的运行做出任何其他假设。您的朋友服务器被告知要将其发送给两个人,因此应该发送两条消息。它正确地接收了一条消息,因此只能假设另一条消息也已正确发送和接收。

构成互联网的底层协议旨在确保两个端点看到的是稳定的链接或消息,即使是在不稳定的连接上。通过重试、重新传输、重新路由和管理,可以让本来就不稳定的数据包看起来像是按合理的顺序按预期发送的。

这一切确实有效,这是互联网构建的一个基本特征。你假设你下面的每一层都正确地完成了自己的工作。如果你不做这样的假设,那么你将发送和接收比你想象的多几倍的信息,却得不到任何实际好处。

相关内容