MX记录(邮件交换)

DNS记录类型
指定哪些邮件服务器应接收域名电子邮件的DNS记录,启用电子邮件传递。
← 返回词汇表

什么是MX记录?

MX(邮件交换)记录是一种DNS记录类型,指定哪些邮件服务器负责代表域接收电子邮件。当某人向user@example.com发送电子邮件时,发送邮件服务器会查询example.com的MX记录以找到传递消息的位置。

MX记录的工作原理

电子邮件传递过程:

1. 发件人撰写电子邮件至user@example.com

2. 发件人的服务器查询example.com的MX记录的DNS

3. DNS返回一个或多个带有优先级的MX记录

4. 发件人连接到最高优先级邮件服务器

5. 如果不可用,发件人尝试下一个优先级服务器

6. 电子邮件传递或排队以供稍后重试

MX记录格式

example.com.    IN    MX    10    mail.example.com.

example.com. IN MX 20 mail-backup.example.com.

组件:

优先级数字

优先级决定尝试服务器的顺序:

许多设置使用10的增量以便稍后插入服务器。

常见MX配置

自托管电子邮件

@    IN    MX    10    mail.example.com.

mail IN A 203.0.113.50

Google Workspace

@    IN    MX    1     aspmx.l.google.com.

@ IN MX 5 alt1.aspmx.l.google.com.

@ IN MX 5 alt2.aspmx.l.google.com.

@ IN MX 10 alt3.aspmx.l.google.com.

@ IN MX 10 alt4.aspmx.l.google.com.

Microsoft 365

@    IN    MX    0     example-com.mail.protection.outlook.com.

Zoho邮件

@    IN    MX    10    mx.zoho.com.

@ IN MX 20 mx2.zoho.com.

@ IN MX 50 mx3.zoho.com.

MX记录要求

目标必须是主机名

MX记录必须指向主机名,而不是IP地址:

# 正确

@ IN MX 10 mail.example.com.

# 不正确 - 不会工作

@ IN MX 10 203.0.113.50

目标需要A/AAAA记录

邮件服务器主机名必须解析为IP:

@      IN    MX    10    mail.example.com.

mail IN A 203.0.113.50

无CNAME目标

MX记录不应指向CNAME记录(RFC 2181):

# 避免这样做

mail IN CNAME host.provider.com.

@ IN MX 10 mail.example.com.

检查MX记录

使用dig
dig example.com MX

; 答案部分:

example.com. 300 IN MX 10 mail.example.com.

example.com. 300 IN MX 20 mail-backup.example.com.

使用DomScan
curl "https://domscan.net/v1/health?domain=example.com"

# 返回DNS详情中的hasMX: true/false

MX记录和电子邮件安全

MX记录与其他电子邮件身份验证记录一起工作:

记录用途
MX路由传入电子邮件
SPF授权发送服务器
DKIM签署传出消息
DMARC政策执行

所有四个都应配置以获得适当的电子邮件操作和可递送性。

故障排除MX问题

无MX记录

如果不存在MX记录,某些服务器将回退到A记录查询,但这不可靠。始终配置明确的MX记录。

错误优先级

如果备份服务器的优先级比预期的低(数字更高),除非主服务器失败,否则它不会接收电子邮件。

主机名解析失败

如果MX目标主机名不解析,电子邮件传递会失败。验证邮件服务器主机名存在A记录。

TTL考虑

迁移电子邮件提供商时,在迁移前降低MX TTL,然后在迁移后恢复正常TTL。

最佳实践

1. 始终有MX记录:不要依赖A记录回退

2. 配置备份服务器:使用多个具有不同优先级的MX记录

3. 验证目标解析:确保邮件服务器主机名有A记录

4. 实施电子邮件身份验证:添加SPF、DKIM和DMARC以及MX

5. 监控电子邮件传递:使用工具测试MX配置

将知识付诸实践

使用 DomScan 的 API 检查域名可用性、健康状态等。