Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 为什么发送电子邮件需要多个邮件服务器跃点?_Email_Networking_Xmpp_Network Protocols - Fatal编程技术网

Email 为什么发送电子邮件需要多个邮件服务器跃点?

Email 为什么发送电子邮件需要多个邮件服务器跃点?,email,networking,xmpp,network-protocols,Email,Networking,Xmpp,Network Protocols,当我向某人发送电子邮件时,(我想)我的电子邮件会发送到我的家庭服务器,然后发送到目标服务器,最后发送到我想发送给的人 有时,这需要多次跳跃,这一点让我感到困惑。为什么这需要多跳?为什么不能将电子邮件直接发送到目标服务器?例如,XMPP不需要多个跃点。当数据包通过internet路由时,它将进行多个跃点以从源到目标 从根本上说,这与互联网的最初目的有关,或者说它的前身,是为了在网络部分丢失的情况下生存(流行到流行的误解,这个设计目标的存在不是为了在核攻击中生存,而是因为当时的网络组件相当不可靠)

当我向某人发送电子邮件时,(我想)我的电子邮件会发送到我的家庭服务器,然后发送到目标服务器,最后发送到我想发送给的人


有时,这需要多次跳跃,这一点让我感到困惑。为什么这需要多跳?为什么不能将电子邮件直接发送到目标服务器?例如,XMPP不需要多个跃点。

当数据包通过internet路由时,它将进行多个跃点以从源到目标

从根本上说,这与互联网的最初目的有关,或者说它的前身,是为了在网络部分丢失的情况下生存(流行到流行的误解,这个设计目标的存在不是为了在核攻击中生存,而是因为当时的网络组件相当不可靠)

数据包交换网络设计用于查找一条或多条路由,从数据包的起始位置(您的电子邮件客户端)到它需要的位置(您要发送给的人的电子邮件客户端)

为了实现这种灵活性,系统的设计不仅是直接从A点到B点,而且是为了找到一条当前正在运行的可用路线(可能是从一组非常大的可能路线中)


如果您的电子邮件客户端必须知道如何直接发送到世界上所有其他设备,而不干预管理流量的子网,则您的计算机将需要与世界上所有其他计算机直接连接。这将是令人望而却步的昂贵。取而代之的是,中间的路由器接受来自您和您所在地区其他人的数据包,并找出如何将每个数据包路由到更接近其目的地的位置。这与航空公司使用地区航班提供枢纽的方法类似。

典型的电子邮件交易使用出站邮件服务器,该服务器查找收件人的传入服务器,将其发送到该服务器,然后该服务器将其交给收件人的邮箱服务器。这是3跳:

当您发送邮件时,您将从电子邮件客户端(更恰当的说法是:邮件用户代理,MUA)连接到出站服务器。这是第一个跃点,SMTP服务器将创建一个
Received
头,表示该跃点,以便稍后进行审核。这将包括它看到您连接的IP、特定服务器内部的消息ID,有时还包括一些其他信息

然后,出站SMTP服务器在DNS中查找每个收件人域的MX(邮件交换)记录,并连接到它可以找到的最高优先级中继(数字上最低的MX优先级)。这是第二跳。与任何跃点一样,添加一个
接收的

MX中继通常进行反垃圾邮件过滤,可能在SMTP连接期间拒绝邮件。这就是生成跳出消息的原因,您的出站SMTP服务器直接向您发送该消息(如果通过internet发送,则有可能成为垃圾邮件的一种形式,因为无法证明跳出是合法的)。通常,反垃圾邮件过滤会在稍后完成,邮件会以静默方式删除,或者以标记的形式发送

MX中继然后在内部将消息传递到邮箱(IMAP/Exchange)服务器(hop#3)。有时,本地邮箱服务器过滤器用于处理模式(或来自MX服务器的标记),并促进各种操作,例如将可疑垃圾邮件归档到垃圾邮件文件夹中

如果您使用邮件转发服务,MX中继会将您的邮件传递给转发目标(另一个MX中继)。从理论上讲,这可以持续相当长的一段时间,甚至可以无限循环,但最终应该在邮箱服务器中结束

另请参阅正式的SMTP规范

如果您使用webmail,则web邮件服务器是您的电子邮件客户端。一些web邮件服务器添加类似于
接收的
邮件头的邮件头来跟踪连接,因此垃圾邮件过滤器可以将其信誉检查扩展到用户,而不是web邮件系统,这可以被描述为另一个跃点


在企业级环境中,多层服务器通常用于各种目的。这些额外的跃点发生在MX中继和邮箱服务器之间,可能与额外的反垃圾邮件或反病毒处理、高级邮件别名、电子邮件存档、校园之间的内部邮件路由或任何其他事项有关。例如,这些可以简化从一个邮件系统到另一个邮件系统的转换(例如在Exchange版本之间迁移,这可能需要大量测试和缓慢的迁移,这样问题就不会影响整个公司)。

您是指网络跃点还是邮件服务器跃点?@DarkXphenomenon我是指邮件服务器跃点这对我很有帮助,谢谢。但是我仍然不明白为什么xmpp协议选择直接连接而不需要多跳;这也太贵了。@user1242027它不@EJP SMTP(电子邮件)允许在服务器部分使用多台服务器,而XMPP在链中最多只允许使用2台服务器(它们之间不可能使用不同的第三台服务器)。这就是最初的问题所在。@Eric J。你的回答解释了为什么单个数据包能够被路由到不同的路径和不同的跳数。我相信问题更多的是,为什么在应用层,SMTP允许多个服务器参与电子邮件的路由。