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

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(使用前将#替换为@)

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

  • 理解 htonl() 和 ntohl()

    我正在尝试使用 unix 套接字来测试向本地主机发送一些 udp 数据包 据我了解 当设置 ip 地址和端口以发送数据包时 我会填写我的sockaddr in将值转换为网络字节顺序 我在 OSX 上 我很惊讶这个 printf ntohl
  • http客户端在Windows 8.1中取消请求

    我正在开发一个 Windows Phone 8 1 项目 Windows 8 1 中有两个版本的 http 客户端 system net http and windows web http Microsoft 建议使用后者 所以 我决定接受
  • 将电子邮件签名添加到电子邮件通知脚本

    我正在 Google Apps 脚本上编写一段代码 以便每次在我的网站上发布新公告时发送电子邮件 这是供参考的代码 var url of announcements page https sites google com announcem
  • 发送 WCF 消息在负载下延迟

    当从自托管 WCF 服务向许多客户端 大约 10 个左右 发送消息时 有时消息的延迟时间比我预期的要长得多 发送到本地网络上的客户端需要几秒钟 有谁知道为什么会这样以及如何解决它 一些背景 该应用程序是股票行情式服务 它从第三方服务器接收消
  • 适用于服务器端的良好 XMPP Java 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我希望用 Java 实现一个简单的 XMPP 服务器 我需要的是一个可以解析和理解来自客户端的 xmpp 请求的库 我看过 Smack 下
  • Android 应用程序开发 - 不带 Intent 直接发送电子邮件

    任何人都可以建议我如何在不使用意图或打开另一个 Android 应用程序的情况下发送电子邮件 我希望点击发送按钮后直接发送电子邮件 我必须使用特定的 Office365 电子邮件来发送消息 我应该使用一些 API 或 SMTP 等吗 有没有
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到
  • aSmack 即服务

    基本上我有一个运行整个项目的主类 该代码运行完美 尽管一旦应用程序失去焦点 它就会变得不活动 我想知道如何将其变成一项服务 一个会在启动时启动的 该应用程序将是一个用于通知的单向消息系统 IE 桌面客户端 gt Openfire 服务器 g
  • 如何修改s_client的代码?

    我正在玩apps s client c in the openssl源代码 我想进行一些更改并运行它 但是在保存文件并执行操作后 我的更改没有得到反映make all or a make 例如 我改变了sc usage函数为此 BIO pr
  • 使用 Flash 在本地托管游戏?

    我只是找不到合适的谷歌搜索词 是否可以使用 Flash 或 Flash 兼容服务 来允许游戏中的玩家通过 Web 浏览器托管自己的游戏 使用自己的带宽 在某种程度上 从他们的计算机运行他们自己的游戏服务器 对于 Flash 浏览器内游戏 但
  • 使用Java查找无线网络的SSID

    我们正在做一个用 Java 编码的项目 为 JRE 1 6 编译 需要一些帮助 一个有点但明显复杂的功能 我们希望在连接特定无线网络时执行特定操作 例如当连接的 SSID myNetworkAtHome 或类似名称时 在浏览了这个网站 谷歌
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • JSP 作为电子邮件模板

    有没有办法发送 MIME 电子邮件 其中电子邮件正文源自 JSP 我需要使用 Javamail 发送一封电子邮件 其中包含一个表格 我认为如果我可以使用 JSP 来完成所有格式设置和布局 将会很方便 在这个线程中 Java 电子邮件模板的建
  • Mailchimp 自动化多次发送同一封电子邮件

    我在登陆页面上使用 mailchaimp 自动化工作流程向我的客户发送电子邮件 自动化工作流程是 客户在我的表格中输入他的电子邮件 使用 api V3 将客户添加到我的 mailchimp 列表 或更新 如果已存在 我使用此触发器调用发送第
  • 如何在Windows Phone 7中获取Wi-Fi和移动网络参数?

    我的应用程序需要以下移动网络参数 MCC 移动国家代码 MNC 移动网络代码 LAC 位置区域代码 CID 小区标识符 细胞信号强度 对于 Wi Fi MAC地址 信号强度 我还需要两个变体的设备 IP 地址 Windows Phone 7
  • 如何使用 Kryonet 通过网络发送对象?

    我是网络新手 我正在尝试将我使用 java 创建的棋盘游戏联网 我的一个朋友向我推荐了 Kryonet 库 到目前为止 一切都很棒 我不必处理套接字 我遇到的问题是发送对象 主要是 我有一个 Board 类型的对象 该对象包含其他对象 例如
  • AttributeError:发送电子邮件时“列表”对象没有属性“编码”

    我想要这段代码 我可以有一个 csv 文件 其中一行电子邮件旁边有一排姓名 然后通过电子邮件发送列表中的每封电子邮件 但消息中包含每个姓名 这是我的代码 import smtplib from email mime text import
  • 如何以编程方式找出哪台计算机是 Windows 中的域控制器?

    我正在寻找一种方法来确定客户端计算机连接到的给定域的域控制器的名称 IP 地址 在我们公司 我们有很多用于测试的小型网络 其中大多数都有自己的小域 作为示例 其中一个域被命名为 TESTLAB 我有一个 Windows XP 工作站 它是
  • 向 yahoo 和 hotmail 用户发送电子邮件?

    我正在使用 php 和 mysql 每次用户在我的网站上注册时 我都会使用 php mail 发送一封电子邮件进行身份验证 最近我发现 很多Yahoo和Hotmail用户还没有激活他们的帐户 假设 1000 个用户中 只有 200 个被激活
  • 在 Python 中通过网络发送对象的最佳方式是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要通过网络发送对象 我将使用 Twisted 并且我刚刚开始查看它的文档 据我所知 python实现套接字的唯一方式是通过文本 那么我如何使

随机推荐

  • 未针对 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