在过去的几周里,我一直在努力了解电子邮件的工作原理.我理解客户端使用POP从服务器接收邮件的过程非常好.我也了解客户端计算机如何使用SMTP来请求SMTP服务器发送消息.但是,我仍然遗漏了一些东西......
我理解它的方式,外发邮件必须进行三次旅行:
据我了解,第一步使用SMTP进行客户端通信.客户端以某种方式(例如,使用USER和PASS)对自身进行身份验证,然后向gmail服务器发送消息.
但是,我不明白gmail服务器如何将邮件传输到hotmail服务器.
对于第三步,我很确定,hotmail服务器使用POP将消息发送到hotmail客户端(再次使用身份验证).
所以,最大的问题是:当我点击发送邮件将我的消息发送到我的gmail服务器时,我的gmail服务器如何将消息转发给hotmail服务器,以便我的朋友可以收到它?
非常感谢!
〜贾森
谢谢,到目前为止,这是有帮助的.
据我了解,第一个客户端使用SMTP将消息发送到第一个服务器,通常是在端口25(通常)上的地址,如smtp.mail.SOMESERVER.com.
然后,SOMESERVER再次使用SMTP将消息发送到端口25上的RECEIVESERVER.com(不是smtp.mail.RECEIVESERVER.com或任何花哨的东西).
然后,当收件人向RECEIVESERVER请求邮件时,使用POP,他/她收到消息......对吗?
再次感谢(特别是对于dr-jan),
贾森
dr-*_*jan 18
Gmail上的SMTP服务器(接受来自Thunderbird的邮件)会将邮件路由到最终收件人.
它通过使用DNS查找目标电子邮件地址的域名部分(本例中为hotmail.com)的MX(邮件交换器)记录来完成此操作.DNS服务器将返回应将消息发送到的IP地址.希望目的地IP地址的服务器运行SMTP(在标准端口25上),以便它可以接收传入的消息.
一旦hotmail服务器收到消息,它就会被存储,直到相应的用户登录并使用POP(或IMAP)检索他们的消息.
杰森 - 回答你的跟进......
然后,SOMESERVER再次使用SMTP将消息发送到端口25上的RECEIVESERVER.com(不是smtp.mail.RECEIVESERVER.com或任何花哨的东西).
这是正确的 - 要发送到的域名被视为收件人电子邮件地址中"@"之后的所有内容.通常,RECEIVESERVER.com是更具体的别名,比如incoming.RECEIVESERVER.com,(或者,确实是smtp.mail.RECEIVESERVER.com).
您可以使用nslookup查询本地DNS服务器(这适用于Linux和Windows cmd窗口):
nslookup
> set type=mx
> stackoverflow.com
Server: 158.155.25.16
Address: 158.155.25.16#53
Non-authoritative answer:
stackoverflow.com mail exchanger = 10 aspmx.l.google.com.
stackoverflow.com mail exchanger = 20 alt1.aspmx.l.google.com.
stackoverflow.com mail exchanger = 30 alt2.aspmx.l.google.com.
stackoverflow.com mail exchanger = 40 aspmx2.googlemail.com.
stackoverflow.com mail exchanger = 50 aspmx3.googlemail.com.
Authoritative answers can be found from:
aspmx.l.google.com internet address = 64.233.183.114
aspmx.l.google.com internet address = 64.233.183.27
>
Run Code Online (Sandbox Code Playgroud)
这向我们显示,应该将stackoverflow.com上任何人的电子邮件发送到上面显示的其中一个gmail服务器.
提到的维基百科文章(http://en.wikipedia.org/wiki/Mx_record)讨论了上面显示的优先级数字(10,20,...,50).
您可能还想知道为什么 GMail 到 HotMail 链接使用 SMTP,就像您的 Thunderbird 客户端一样。换句话说,既然您的客户端可以通过 SMTP 发送电子邮件,并且它可以使用 DNS 获取 hotmail.com 的 MX 记录,那么为什么不直接将其发送到那里,完全跳过 gmail.com?
有几个原因,一些是历史原因,一些是出于安全原因。在最初的问题中,假设您的 Thunderbird 客户端使用用户名和密码登录。情况往往并非如此。SMTP 实际上不需要登录来发送邮件。并且 SMTP 无法判断谁真正发送了邮件。于是,垃圾邮件诞生了!
不幸的是,仍然有许多 SMTP 服务器允许任何人和每个人连接和发送邮件,盲目地相信发件人就是他们声称的人。这些服务器被称为“开放中继”,通常会被其他邮件服务器的更聪明的管理员列入黑名单,因为它们会产生垃圾邮件。
负责的 SMTP 服务器管理员将他们的服务器设置为仅在特殊情况下接受邮件传送:1) 邮件来自“自己的”网络,或 2) 邮件被发送到“自己的”网络,或 3) 用户提供将他标识为受信任发件人的凭据。第 1 种情况可能是您从工作中发送邮件时发生的情况;您的机器位于受信任的网络上,因此您可以向任何人发送邮件。许多公司邮件服务器仍然不需要身份验证,因此您可以冒充办公室中的任何人。乐趣!第 2 种情况是有人向您发送邮件。案例#3 可能是您的 GMail 示例发生的情况。您并非来自受信任的网络,您只是与垃圾邮件发送者一起在 Internet 上。但是通过使用密码,您可以向 GMail 证明您就是您所说的那个人。
历史方面是,在过去,gmail 和 hotmail 之间的链接可能是断断续续的。通过在本地服务器上排队您的邮件,您可以洗手,知道建立链接后,本地服务器可以将您的邮件传输到远程服务器,该服务器将保留该邮件,直到收件人的代理收到它.
| 归档时间: |
|
| 查看次数: |
3278 次 |
| 最近记录: |