Email 为什么SMTP用户代理必须通过邮件服务器发送邮件?

Email 为什么SMTP用户代理必须通过邮件服务器发送邮件?,email,smtp,Email,Smtp,我的网络老师说从Alice到Bob的SMTP消息传递过程就是这个过程 (1) 用户代理->(2)Alice的邮件服务器->(3)Bob的邮件服务器->(4)Bob的用户代理 假设Alice使用她的用户代理(例如Thunderbird)。为什么她的电子邮件必须通过邮件服务器发送?为什么她不能直接给bob的邮件服务器发送消息?如果她的用户代理知道Bob的地址(bob@gmail.com),难道她的用户代理不能做一些DNS查找来找出gmail.com的IP地址并将她的SMTP消息直接发送到Bob的邮件

我的网络老师说从Alice到Bob的SMTP消息传递过程就是这个过程

(1) 用户代理->(2)Alice的邮件服务器->(3)Bob的邮件服务器->(4)Bob的用户代理


假设Alice使用她的用户代理(例如Thunderbird)。为什么她的电子邮件必须通过邮件服务器发送?为什么她不能直接给bob的邮件服务器发送消息?如果她的用户代理知道Bob的地址(bob@gmail.com),难道她的用户代理不能做一些DNS查找来找出gmail.com的IP地址并将她的SMTP消息直接发送到Bob的邮件服务器吗?

电子邮件传输通常很简单。“特殊情况”的数量可能是巨大的

  • 通过本地邮件/SMTP服务器发送使用户/邮件代理更简单。它降低了在传递电子邮件之前遇到“特殊情况”的机会。它有助于避免“不稳定”的行为

  • 在垃圾邮件时代,直接发送到收件人的邮件服务器更加复杂,风险也更大

  • 一些服务器在没有任何通知的情况下丢弃“分类为垃圾邮件”的消息。如果没有它,我可能会建议“高级用户”在SMTP会话中初始直接传递失败时使用本地邮件服务器作为后备传递路由


    如果您有固定的IP地址,但未阻止传出SMTP连接,则可以设置自己的邮件/SMTP服务器。这使得市场上的复杂邮件代理变得更小。

    < P>如果我们考虑到鲍伯的邮件服务器无法到达的情况,那么爱丽丝除了向爱丽丝的邮件服务器发送电子邮件之外没有别的选择。 如果Alice将电子邮件存放到其邮件服务器,则Alice的邮件服务器将继续尝试向Bob的邮件服务器发送电子邮件,直到可以访问为止


    正如您所提到的,如果我们尝试直接向Bob的邮件服务器发送电子邮件,那么Alice将不得不不断重复发送该电子邮件,直到Bob的邮件服务器变得可访问,并且作为用户,您不希望这样。

    与HTTP不同,SMTP是一种“推送”协议。HTTP客户端从HTTP服务器“提取”数据。另一方面,邮件客户端(在本例中为Alice)使用简单邮件传输协议(SMTP)将电子邮件“推送”到运行SMTP的邮件服务器。邮件服务器然后将此电子邮件推送到Bob的邮件服务器

    现在,当Bob想要检查他的电子邮件时,他不使用SMTP,而是使用另一种协议,如IMAP/POP来获取他的新电子邮件并显示在他的用户代理上


    如果Alice直接向Bob发送电子邮件,Bob的用户代理必须始终处于打开状态(很像服务器)。但是,由于Bob只是另一个可以关闭的客户端,如果Bob的用户代理关闭,Alice的电子邮件将无法到达Bob。因此,邮件服务器将Alice的电子邮件存储到Bob,当Bob的用户代理打开时,它可以检索新的电子邮件。因此,需要通过邮件服务器发送邮件。

    当您通过蜗牛邮件发送邮件时,为什么您的信件必须同时经过本地邮局和目的地邮局?为什么它不能离开你的家,自动地进入收件人的邮箱?用户代理没有任何查找功能。Alice的电子邮件客户端软件(您称之为用户代理)知道Alice邮件服务器的地址,就是它。Alice知道Bob的邮件服务器的名称(Bob@example.com),但不知道鲍勃住在哪里。Alice的邮件服务器知道Bob的邮件服务器的地址,Bob的邮件服务器知道Bob所在的位置。