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

2024-04-08

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

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


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

当您发送消息时,您从电子邮件客户端(更准确地说:邮件用户代理,MUA)连接到您的出站SMTP https://en.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol服务器。这是第一跳,您的 SMTP 服务器会创建一个Received表示稍后审核的标头。这将包括它看到您连接的 IP、该特定服务器内部的消息 ID,有时还包括一些其他信息。

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

MX 中继通常会进行反垃圾邮件过滤,可能会在 SMTP 连接期间拒绝邮件。这就是生成退回邮件的原因,您的出站 SMTP 服务器会直接向您发送该邮件(如果通过 Internet 发送,则有被拒绝的风险)后向散射 https://en.wikipedia.org/wiki/Backscatter_(email),一种垃圾邮件,因为无法证明退回邮件是合法的)。通常,反垃圾邮件过滤是稍后完成的,并且消息会被静默丢弃或以标记形式传递。

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

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

另请参阅正式的 SMTP 规范,RFC 5321 https://www.rfc-editor.org/rfc/rfc5321.

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么发送电子邮件需要多个邮件服务器跃点? 的相关文章

随机推荐

  • 未针对 Rails 资源编译 CSS 样式

    我在 Rails 3 2 应用程序中对样式表进行了以下设置 我有一个应用程序 css文件中定义了许多样式 以及其他几个用于更具体样式的文件 例如与页脚有关的所有内容都在页脚 css 在开发中 一切正常 但在生产中 所需文件中的任何移动样式都
  • 输入stream.read返回0还是-1?

    有什么区别 byte buffer new byte 1024 this if inputStream read buffer gt 0 and if inputStream read buffer 1 两者都能确定网络流终止吗 Java
  • 如何在 WPF 中禁用 UserControl 的大小调整

    How to 禁用此用户控件的大小调整 换句话说 当用户用鼠标抓住这个用户控件的角或边时 我不希望用户能够更改用户控件的大小 或者 如果无法停止调整大小 那么我如何只允许拖动用户控件的右侧
  • req.flash() 需要会话

    我在视图中遇到闪光问题 我正在使用连接闪存 这是我的配置 app use express bodyParser app use express methodOverride app use express cookieParser secr
  • 为什么需要消息队列来与 Web 套接字聊天?

    我在互联网上看到了很多使用 Web 套接字和 RabbitMQ 进行聊天的示例 https github com videlalvaro rabbitmq chat https github com videlalvaro rabbitmq
  • 如何在 O(n+m) 时间内找到有向图中的母顶点? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有向图 G V E 中的母顶点是顶点 v 使得所有其他顶点 顶点 G 可以通过从 v 出发的有向路径到达 给出一个 O n m 算法来
  • 由于通道无故陈旧而不断断开连接

    自从几天前发布最新版本以来 我们的用户不断地被断开连接 因为通道令牌在创建几分钟后就变得陈旧了 我们的令牌设置为持续 5 小时 但如果它们持续 5 10 分钟 我们就很幸运 并且当通道关闭时 我们甚至无法重新连接新的通道令牌 直到用户刷新为
  • .NET新手套接字问题

    我有一个使用 C 编写的客户端 服务器网络程序 TCPListener 和 TCPClient 类 服务器正在读取所有内容 来自客户端 少量 xml 就很好 直到我尝试发送 大文件 100k 返回给客户端 我正在使用流函数 客户端和服务器都
  • Spring 将表单的操作映射到控制器

    我是 Spring 框架的新手 我使用以下方法创建了一个控制器 RequestMapping fetch contactId public String getContact PathVariable contactId Long cont
  • 如何使antlr4完全标记化终端节点

    我正在尝试使用 Antlr 制作一个非常简单的解析器 它基本上标记了一系列 分隔标识符 我做了一个简单的语法 r STRUCTURE SELECTOR STRUCTURE SELECTOR ID STRUCTURE SELECTOR ID
  • Redis部署配置-主从复制

    目前我有两台服务器 我已经部署了基于node js Express JS的Web服务API 我正在使用 Redis 来缓存 JSON 字符串 将此设置部署到生产中的最佳选择是什么 我懂了here https stackoverflow co
  • 删除 WPF ListView/GridView 高亮镶边

    我有 WPF ListView 和 GridView 视图 我想删除行突出显示的任何痕迹 这段有用的代码可以在该网站的一个答案中找到
  • Android:以编程方式从设备管理器中删除我的应用程序?

    我正在尝试向我的应用程序添加一个按钮以将其从设备管理员中删除 并使用下面的代码 但我的应用程序崩溃了 Code 单击按钮 ComponentName devAdminReceiver new ComponentName this DemoD
  • 将金额转换为 Python 印度格式的单词

    如何将印度语中的金额转换为单词 我正在使用 num2words 库 但它在呈现 十万 和 千万 时呈现错误的单词集 例如 num2words 903614 55 lang en IN 其印刷 nine hundred and three t
  • Kendo mvc grid 内联编辑模式 DateTimePicker 模板给出错误

    我正在使用 Kendo UI mvc 网格来列出数据 我正在这个网格中进行内联编辑 我使用 EditorTemplate 作为日期时间字段 这样它将在内联编辑模式下为日期时间字段提供日期时间选择器 当我要单击 更新 按钮时 它会给我这样的验
  • 将较小的矩形合并为较大的矩形

    我有一个问题 我需要将小正方形合并成更大的矩形 假设我有一个 2D 网格 其中填充了随机 1 和 0 1 0 1 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 0 1 代表已填充的区域 我将它们绘制为屏
  • 无法解析配置“:app:debugRuntimeClasspath”的所有文件

    我正在尝试构建颤振应用程序 之前运行正常 但突然出现此错误 Execution failed for task app checkDebugAarMetadata gt Could not resolve all files for con
  • 如何控制 UISearchDisplayController 的 searchResultsTableView?

    我想知道如何控制所使用的表视图UISearchDisplayController 你不能覆盖searchResultsTableView的财产UISearchDisplayController 因为它是一个只读财产 我尝试过覆盖search
  • 如何使用 WiX 设置服务的恢复选项?

    我有以下 wxs 文件
  • 为什么发送电子邮件需要多个邮件服务器跃点?

    当我向某人发送电子邮件时 我认为 我的电子邮件被发送到我的家庭服务器 然后电子邮件被发送到目标服务器 最后被发送到我想要发送给的人 有时 这需要多次跳跃 这是让我困惑的一点 为什么这需要多跳 为什么邮件不能直接发送到目标服务器 例如 XMP