Email 发送电子邮件涉及哪些协议和服务器,步骤是什么?

Email 发送电子邮件涉及哪些协议和服务器,步骤是什么?,email,smtp,pop3,Email,Smtp,Pop3,在过去的几周里,我一直在努力学习电子邮件的工作原理。我非常了解客户端使用POP从服务器接收邮件的过程。我还了解客户端计算机如何使用SMTP请求SMTP服务器发送邮件。然而,我仍然缺少一些东西 按照我的理解,发送邮件必须进行三次旅行: 客户端(使用Thunderbird的gmail用户)到服务器(gmail) 第一台服务器(Gmail)到第二台服务器(Hotmail) 第二台服务器(Hotmail)到第二台客户端(使用OS X Mail的Hotmail用户) 据我所知,第一步使用SMTP与客户端进

在过去的几周里,我一直在努力学习电子邮件的工作原理。我非常了解客户端使用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服务器,以便我的朋友可以接收它?

    非常感谢你

    ~z~杰森


    谢谢,到目前为止这很有帮助

    据我所知,第一个客户端使用SMTP将消息发送到第一个服务器,通常发送到端口25(通常)上的SMTP.mail.SOMESERVER.com等地址

    然后,SOMESERVER再次使用SMTP将邮件发送到端口25上的RECEIVESERVER.com(而不是SMTP.mail.RECEIVESERVER.com或任何花哨的东西)

    然后,当收件人使用POP向RECEIVESERVER请求邮件时,他/她会收到邮件。。。对吧?

    再次感谢(特别是简博士)


    Jason

    你正在寻找邮件传输代理,Wikipedia对此进行了讨论

    在Internet邮件处理服务(MHS)中,邮件传输代理或邮件传输代理(MTA)或邮件中继是使用客户机-服务器应用程序体系结构将电子邮件从一台计算机传输到另一台计算机的软件。MTA实现简单邮件传输协议的客户端(发送)和服务器(接收)部分

    术语邮件服务器、邮件交换器和MX主机也可能指执行MTA功能的计算机。域名系统(DNS)将邮件服务器与包含提供MTA服务主机域名的邮件交换器(MX)资源记录的域相关联

    步骤2到3(即Gmail到Hotmail)通常通过SMTP(或ESMTP-扩展SMTP)进行


    Hotmail不会通过POP3向客户端发送任何内容。理解这里的一些细微差别很重要。客户端通过POP3联系Hotmail并请求其邮件。(即,客户端发起讨论)。

    第一台服务器将在DNS中查找Hotmail服务器的MX记录。MX是为特定域定义邮件服务器的特殊记录。知道Hotmail服务器的IP地址后,GMail服务器将使用SMTP协议发送消息,并等待答复。如果Hotmail服务器宕机,GMail服务器将尝试重新发送邮件(具体取决于服务器软件配置)。如果进程终止ok,则ok,否则,GMail服务器将通知您他无法发送邮件。

    GMail上的SMTP服务器(接受雷鸟的邮件)将把邮件路由到最终收件人

    它通过使用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窗口中工作):

    这表明给stackoverflow.com上任何人的电子邮件都应该发送到上面显示的gmail服务器之一


    上面提到的维基百科文章()讨论了上面显示的优先级编号(10、20、…、50)。

    如果您真的想知道电子邮件的工作原理,您可以阅读或。

    所有电子邮件都使用SMTP(或ESMTP)传输
    需要了解的重要一点是,当您向someguy@hotmail.com此邮件的目标不是他的电脑。目标是hotmail.com服务器上某人的收件箱文件夹
    消息到达目的地后。用户可以在hotmail服务器上检查他的帐户上是否有任何新邮件,并使用POP3检索这些邮件


    此外,也可以不使用gmail服务器发送邮件,通过SMTP将邮件直接从PC发送到hotmail

    您可能还想知道为什么GMail到HotMail链接使用SMTP,就像您的Thunderbird客户端一样。换句话说,既然你的客户端可以通过SMTP发送电子邮件,并且可以使用DNS获取hotmail.com的MX记录,为什么它不直接发送到那里,完全跳过gmail.com呢

    有两个原因,一个是历史原因,另一个是安全原因。在原始问题中,假设您的Thu
    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
    >