我想详细了解电子邮件的工作原理。我找到了一个相当不错的网站(DNS 中的 MX 记录说明及示例配置) 描述该主题。不幸的是,我有些困惑。以下是该网站关于发送电子邮件的内容:
一旦您的 SMTP 服务器使用 MX 记录查找找到目标接收方的 SMTP 服务器,它就会将消息转发到该服务器(通过互联网)。然后,SMTP 服务器会将消息转发到负责该域的 POP 或 IMAP 服务器...
假设我想从 发送电子邮件[email protected]
到[email protected]
。根据上述陈述,我的MUA
(mutt
在我的情况下)将消息发送到我的 SMTP 服务器(即smtp.mail.yahoo.com)
。然后smtp.mail.yahoo.com
使用 DNS 查找获取gmail.com
域的 MX 记录。当我检查 的 MX 记录时,IP 为:gmail.com
。从另一端看,gmail SMTP 服务器( )的地址是: 。这就是混乱之处。gmail-smtp-in.l.google.com
173.194.77.26
smtp.gmail.com
173.194.77.108
- 上述两个地址难道不应该相同吗(正如我从引用的摘录中理解的那样)?为什么 MX 查找返回的引用指向不同的机器,而
smtp.gmail.com
is 则指向不同的机器? - 这是否意味着将
smtp.mail.yahoo.com
消息转发给gmail-smtp-in.l.google.com
?如果是,smtp.gmail.com
在此过程中需要做什么? - 邮箱账户托管在哪里
marry
?在gmail-smtp-in.l.google.com
,smtp.gmail.com
或者可能是imap.gmail.com
serer?
答案1
同一提供商的传入和传出 SMTP 可能由不同的服务器处理。
传入 SMTP(通常称为 MX)负责为域用户处理传入邮件。这些服务器将配置为仅接受发往其自身域(例如 gmail.com)的邮件。
外发 SMTP 负责为试图向世界其他地方发送电子邮件的域用户处理邮件。这些服务器将配置为允许发往世界各地的邮件,但前提是这些邮件是由他们自己的客户发送的。这通常是通过基于 IP 地址或 SMTP AUTH(用户名和密码)的防火墙来强制执行的。
如果您从 yahoo.com 向 google.com 发送邮件,smtp.gmail.com 将不会执行任何操作。但是,如果您从 google.com 向 yahoo.com 发送邮件,smtp.google.com 服务器将接受来自 MUA 的邮件并将其发送到 yahoo.com 的 MX 服务器。
对于您的最后一个问题,marry 邮箱可能托管在 Google 云中的某个远程服务器上。当前端(处理 imap.google.com 的服务器之一)收到从 marry 邮箱提供文件的请求时,它会查找对邮箱的引用(在某个数据库中)并从远程计算机检索信息。
考虑大型邮件设置(如 yahoo.com 和 gmail.com)可能不是开始了解邮件的最佳方式。尝试了解您的 ISP 如何处理它。