Domain IP Lookup

一封邮件如何找到您的邮件服务器

发件人

you@gmail.com

MX 查询

谁来收邮件?

邮件服务器

优先级 10 优先

收件箱

已送达

优先级数值最小者优先;数值较大的作为备用

DNS 基础

MX 记录详解:邮件如何找到目的地

3 分钟阅读

当有人向 name@example.com 发送邮件时,发送方的邮件服务器并不会去查询 example.com 常规的 A 记录,而是查询一种完全不同的记录类型:MX,即 Mail Exchange(邮件交换)的缩写。MX 记录指向负责接收该域名邮件的服务器的主机名,而这个地址往往与网站本身所在的地址完全不同。

优先级:最容易让人意外的部分

一个域名可以有多条 MX 记录,每条都带有一个数字形式的优先级值,数值越小越优先。发送服务器会先尝试优先级数值最小(最优先)的邮件服务器,只有它无法访问时,才会退而尝试数值更大的那些。冗余的邮件投递正是由此实现的:备用邮件服务器放在数值较大的优先级上,在主服务器宕机时随时准备接收邮件。

优先级目标行为
10mail1.example.com最先尝试,数值最小,最优先
20mail2.example.com备用,仅当优先级 10 无法访问时才尝试
30mail3.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 工具。

本主题的免费工具