MX 记录

DNS 邮件交换 (MX) 记录是域名系统中的一种资源记录类型,用于指定负责代表域名接收电子邮件的邮件服务器。MX 记录将电子邮件导向正确的服务器,并包含优先级值,用于确定应联系邮件服务器的顺序。

How it works

当有人向您的域名发送电子邮件时(例如 user@example.com),他们的邮件服务器需要知道哪个邮件服务器应该接收该邮件。MX 记录通过将您的域名映射到一个或多个邮件服务器来提供此信息,同时包含优先级值以确定应尝试的顺序。

使用 MX 记录的电子邮件路由过程如下: 1. **发送邮件**:有人向 user@example.com 发送电子邮件 2. **DNS 查询**:发送方的邮件传输代理 (MTA) 对 example.com 关联的 MX 记录执行 DNS 查询 3. **检索 MX 记录**:DNS 服务器响应该域名的所有 MX 记录,每条记录包含优先级值和邮件服务器主机名 4. **优先级排序**:发送 MTA 按优先级对 MX 记录进行排序(数字越小 = 优先级越高) 5. **连接尝试**:发送方的 MTA 尝试通过 SMTP 连接到最高优先级的邮件服务器(数字最小) 6. **故障转移**:如果第一个服务器不可用,MTA 将尝试下一个最高优先级的服务器,继续在列表中依次尝试,直到成功投递或所有服务器均失败 优先级系统通过冗余确保电子邮件投递的可靠性。组织通常配置多个 MX 记录指向不同的邮件服务器,用于备份和负载均衡。

Key Points

  • MX 记录由两部分组成:优先级值和邮件服务器主机名
  • 较低的优先级数字表示更高的优先级(例如,优先级 10 会在优先级 20 之前尝试)
  • 多个 MX 记录为电子邮件投递提供冗余和负载均衡
  • MX 记录必须指向主机名(A 或 AAAA 记录),永远不能直接指向 IP 地址
  • 如果不存在 MX 记录,某些邮件服务器会尝试使用域名的 A 记录作为备用方案进行投递

Common Use Cases

  • 邮件服务器配置: 将电子邮件流量导向您组织的邮件服务器,无论是自托管还是使用 Gmail、Microsoft 365 或其他电子邮件服务提供商
  • 冗余和故障转移: 设置具有不同优先级的多个 MX 记录,确保即使主邮件服务器暂时不可用,电子邮件投递也能继续
  • 负载均衡: 配置具有相同优先级的多个 MX 记录,将传入的电子邮件分配到多个服务器,防止任何单个服务器过载
  • 垃圾邮件过滤: 将 MX 记录指向垃圾邮件过滤服务(如 Cloudflare Area 1 或 Barracuda),然后再将干净的电子邮件路由到实际的邮件服务器

code 配置示例

TypeHost / NameValue / Points toTTL
MX@10 mail1.example.com3600
MX@20 mail2.example.com3600
MX@30 mail3.example.com3600
Amail1192.0.2.103600

* MX 记录包含优先级值(越低 = 优先级越高)和邮件服务器主机名。多个记录提供冗余。

Frequently Asked Questions

MX 记录可以直接指向 IP 地址吗?expand_more
不可以,MX 记录必须指向主机名(域名),而不是 IP 地址。MX 记录中指定的主机名必须有自己的 A 记录(用于 IPv4)或 AAAA 记录(用于 IPv6),解析为邮件服务器的实际 IP 地址。这是 RFC 2181 中定义的基本 DNS 要求。
如果我有多个具有相同优先级的 MX 记录会发生什么?expand_more
当多个 MX 记录具有相同的优先级值时,邮件服务器将在每次投递尝试时随机选择其中一个。这提供了基本的负载均衡,将传入的电子邮件大致均匀地分配到具有相同优先级的服务器上。当您有多个具有相同能力的邮件服务器并希望在它们之间平衡负载时,这很有用。
如果我不接收电子邮件,是否需要 MX 记录?expand_more
如果您不需要在您的域名上接收电子邮件,您可以完全省略 MX 记录,或创建一个"空 MX"记录(优先级 0,指向单个点"."),明确表示该域名不接受电子邮件。空 MX 方法是首选,因为它向发送服务器明确发出信号,不要尝试电子邮件投递,从而防止浪费投递尝试。
MX 记录如何与子域配合使用?expand_more
每个子域可以拥有独立于父域的自己的 MX 记录。例如,example.com 可能有指向一个邮件服务器的 MX 记录,而 support.example.com 可以有指向不同邮件服务器的不同 MX 记录。如果子域不存在 MX 记录,则不会自动回退到父域的 MX 记录 - 发送到该子域的电子邮件将失败,除非发送服务器尝试使用子域的 A 记录进行投递。
MX 记录的合适 TTL 值是多少?expand_more
MX 记录通常使用 1 小时(3600 秒)到 24 小时(86400 秒)之间的 TTL 值。由于邮件服务器配置不经常更改,通常可以接受较长的 TTL 值,并减少 DNS 查询负载。但是,如果您计划迁移邮件服务器,请在更改前一两天将 TTL 降低到 5-15 分钟,以确保新记录更快地传播。