一封邮件如何找到您的邮件服务器
发件人
you@gmail.com
MX 查询
谁来收邮件?
邮件服务器
优先级 10 优先
收件箱
已送达
优先级数值最小者优先;数值较大的作为备用
MX 记录详解:邮件如何找到目的地
当有人向 name@example.com 发送邮件时,发送方的邮件服务器并不会去查询 example.com 常规的 A 记录,而是查询一种完全不同的记录类型:MX,即 Mail Exchange(邮件交换)的缩写。MX 记录指向负责接收该域名邮件的服务器的主机名,而这个地址往往与网站本身所在的地址完全不同。
优先级:最容易让人意外的部分
一个域名可以有多条 MX 记录,每条都带有一个数字形式的优先级值,数值越小越优先。发送服务器会先尝试优先级数值最小(最优先)的邮件服务器,只有它无法访问时,才会退而尝试数值更大的那些。冗余的邮件投递正是由此实现的:备用邮件服务器放在数值较大的优先级上,在主服务器宕机时随时准备接收邮件。
| 优先级 | 目标 | 行为 |
|---|---|---|
| 10 | mail1.example.com | 最先尝试,数值最小,最优先 |
| 20 | mail2.example.com | 备用,仅当优先级 10 无法访问时才尝试 |
| 30 | mail3.example.com | 第二备用,仅当上面两个都失败时才尝试 |
- MX 记录的目标本身必须能解析到 A 或 AAAA 记录,不能直接指向某个 IP 地址。
- 完全没有 MX 记录的域名,通常无法接收邮件,即使它的网站运行良好,二者由完全独立的 DNS 查询处理。
- 两条优先级值相同的 MX 记录可以同时有效,发送服务器可以自由选择其中任何一条,这有时被有意用作一种粗略的负载均衡。
它的意义不止于“邮件能用或不能用”
MX 记录也是核实域名整体邮件配置的起点:SPF、DKIM 和 DMARC 记录的存在,都是为了证明声称来自某个域名的邮件确实获得了授权,而在核实这些记录之前,检查 MX 配置通常是第一步。迁移到新的邮件服务商,本质上是对 MX 记录(以及配套记录)的一次 DNS 变更,这意味着它会继承任何其他 DNS 更新都适用的传播延迟注意事项。
刻意不发送邮件的域名
并非每个域名都想接收邮件,而对此不做任何声明,本身就是一个小小的安全缺口:在没有明确信号的情况下,有些邮件系统仍会尝试投递,或对缺失的配置做出假设。RFC 7505 专门为此定义了“空 MX”(null MX):设置一条 MX 记录,指向“.”(根,意为哪里都不指向),优先级为 0,明确声明“本域名不接收邮件,不必再尝试”。对于任何确实永远不会发送或接收邮件的域名,比如营销跳转域名或仅供内部使用的服务域名,这都是一项值得设置的小改动,而且很容易做到。
值得避免的常见错误
一个出人意料地频繁出现的配置错误,是把 MX 记录直接指向某个 IP 地址,或者指向一个只有 CNAME、而没有真正的 A/AAAA 记录的主机名。这两种做法都违反了该记录类型自身的规则,严格遵循规范的邮件系统会直接拒绝投递,而不会去猜测原本的意图。如果某个域名的网站运行完全正常,邮件投递却彻底失败,而不只是变慢,那么检查每个 MX 目标是否确实解析到普通的 A 或 AAAA 记录,而不是 CNAME,也不是误填的裸 IP,是最先值得核实、也最省事的事情之一。
需要查看某个域名的公网 DNS 地址?使用 Domain IP Lookup 工具。
本主题的免费工具
相关阅读
三个层级都被称作“DNS 服务器”
存根解析器
您自己的设备
递归解析器
运营商、路由器或 1.1.1.1
权威服务器
域名自己的 DNS
递归解析器与权威解析器详解
“DNS 服务器”一词其实指两种截然不同的角色:负责发问的递归解析器,和握有答案的权威服务器。本文帮您分清二者。
实际如何选择 TTL
理解 DNS TTL:为什么变更需要时间才能生效
TTL 决定一条 DNS 应答在被再次查询之前会缓存多久,这正是 DNS 变更无法在各处立即生效的真正原因。了解如何权衡并选择合适的值。
两种寻址方案,并行运行
IPv4
192.0.2.10
32 位,约 43 亿个地址,已耗尽
IPv6
2606:4700::6810:84e5
128 位,约 3.4×10³⁸ 个地址
A 记录与 AAAA 记录:IPv4 和 IPv6 详解
A 记录返回 IPv4 地址,AAAA 记录返回 IPv6 地址。同一个域名拥有两个相互独立的地址族,这也是为什么两者都要检查。