发送电子邮件涉及哪些协议和服务器,步骤是什么?
在过去的几周中,我一直在尝试了解电子邮件的工作原理。我很了解客户端使用POP从服务器接收邮件的过程。我也了解客户端计算机如何使用SMTP来请求SMTP服务器发送消息。但是,我仍然缺少一些东西...
以我的理解,外发邮件必须经过三趟:
- 客户端(使用Thunderbird的Gmail用户)到服务器(Gmail)
- 第一台服务器(Gmail)到第二台服务器(Hotmail)
- 第二个服务器(Hotmail)到第二个客户端(使用OS X Mail的Hotmail用户)
据我了解,第一步使用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或者任何其他奇特的东西)。
然后,当收件人使用POP向RECEIVESERVER询问其邮件时,他/他会收到该消息...对吗?
再次感谢(特别是让詹博士),
杰森
解决方案
回答
我们正在寻找邮件传输代理,Wikipedia上有一篇有关该主题的不错的文章。
Within Internet message handling services (MHS), a message transfer agent or mail transfer agent (MTA) or mail relay is software that transfers electronic mail messages from one computer to another using a client–server application architecture. An MTA implements both the client (sending) and server (receiving) portions of the Simple Mail Transfer Protocol. The terms mail server, mail exchanger, and MX host may also refer to a computer performing the MTA function. The Domain Name System (DNS) associates a mail server to a domain with mail exchanger (MX) resource records containing the domain name of a host providing MTA services.
回答
第2步到第3步(即从Gmail到Hotmail)通常会通过SMTP(或者ESMTP扩展SMTP)进行。
Hotmail不会通过POP3向客户端发送任何内容。重要的是要了解这里的一些细微差别。客户端通过POP3与Hotmail联系并请求其邮件。 (即客户发起讨论)。
回答
第一台服务器将在DNS中查找Hotmail服务器的MX记录。 MX是一条特殊记录,用于为特定域定义邮件服务器。知道Hotmail服务器的IP地址后,GMail服务器将使用SMTP协议发送邮件并等待答复。如果Hotmail服务器出现故障,GMail服务器将尝试重新发送消息(这取决于服务器软件配置)。如果该过程正常终止,则正常,否则,GMail服务器将通知我们他无法传递邮件。
回答
Gmail的SMTP服务器(接受了Thunderbird的邮件)会将邮件路由到最终收件人。
它通过使用DNS查找目标电子邮件地址(在此示例中为hotmail.com)的域名部分的MX(邮件交换器)记录来完成此操作。 DNS服务器将返回应将邮件发送到的IP地址。希望位于目标IP地址的服务器将运行SMTP(在标准端口25上),以便它可以接收传入的消息。
一旦邮件被Hotmail服务器接收,它将被存储,直到适当的用户登录并使用POP(或者IMAP)检索其邮件。
杰森(Jason)回答跟进...
Then, SOMESERVER uses SMTP again to send the message to RECEIVESERVER.com on port 25 (not smtp.mail.RECEIVESERVER.com or anything fancy).
没错,要发送到的域名被视为收件人电子邮件地址中" @"之后的所有内容。通常,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 >
这向我们显示,应将发送给stackoverflow.com上任何人的电子邮件发送到上面显示的gmail服务器之一。
提到的Wikipedia文章(http://en.wikipedia.org/wiki/Mx_record)讨论了上面显示的优先级数字(10,20,...,50)。
回答
如果我们真的想知道电子邮件的工作方式,则可以阅读SMTP RFC或者POP3 RFC。
回答
所有电子邮件都使用SMTP(或者ESMTP)进行传输。
要了解的重要一点是,当我们将邮件发送到[email protected]时,该邮件的目的地不是他的PC。目的地是hotmail.com服务器上someguy的收件箱文件夹。
消息到达目的地之后。用户可以在hotmail服务器上的帐户中检查他是否有任何新消息,并使用POP3检索它们。
也可以通过使用SMTP将邮件直接从PC发送到Hotmail,而无需使用gmail服务器来发送邮件。
回答
我们可能也想知道为什么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之间的链接可能是断断续续的。通过在本地服务器上排队邮件,我们可以洗手,知道链接已建立时,本地服务器可以将邮件传输到远程服务器,该远程服务器将保留该邮件,直到收件人的代理收拾该邮件为止。 。