新域名ausset.au的MTA-STS配置在Google检测中显示格式错误
我有新域名ausset.au,已配置SPF、DKIM、DMARC、MTA-STS等邮件安全功能。用MxToolbox检测所有配置(包括MTA-STS)均显示正常,但通过Google Admin Toolbox的Check MX工具检测时,始终收到如下错误:
If your domain wants to use MTA-STS (optional), the MTA-STS TXT record must comply with RFC8461.
MTA STS is malformed.
相关DNS记录如下:
A记录
| 类型 | 名称 | IPv4地址 | TTL |
|---|---|---|---|
| A | mta-sts.ausset.au. | 104.21.85.225 | 300 |
| A | mta-sts.ausset.au. | 172.67.211.221 | 300 |
MX记录
| 类型 | 名称 | 优先级 | 邮件服务器 | TTL |
|---|---|---|---|---|
| MX | ausset.au. | 1 | aspmx.l.google.com. | 3600 |
| MX | ausset.au. | 5 | alt1.aspmx.l.google.com. | 3600 |
| MX | ausset.au. | 5 | alt2.aspmx.l.google.com. | 3600 |
| MX | ausset.au. | 10 | alt3.aspmx.l.google.com. | 3600 |
| MX | ausset.au. | 10 | alt4.aspmx.l.google.com. | 3600 |
TXT记录
| 类型 | 名称 | 内容 | TTL |
|---|---|---|---|
| TXT | ausset.au. | "v=spf1 include:_spf.google.com -all" | 3600 |
| TXT | ausset.au. | "google-site-verification=xqVfNs...a4oIFds" [已缩短便于阅读] | 3600 |
| TXT | _dmarc.ausset.au. | "v=DMARC1; p=reject; rua=mailto:dmarcrpt@ausset.au" | 1 |
| TXT | google._domainkey.ausset.au. | "v=DKIM1; k=rsa; p=MIIBIj...IDAQAB" [已缩短便于阅读] | 1 |
| TXT | _mta-sts.ausset.au. | "v=STSv1; id=20230805184000" | 1 |
| TXT | _smtp._tls.ausset.au. | "v=TLSRPTv1; rua=mailto:tlsrpt@ausset.au,https://mta-sts.ausset.au/.well-known/mta-sts.txt" | 1 |
MTA-STS策略文件内容:
version: STSv1 mode: testing mx: aspmx.l.google.com mx: *.aspmx.l.google.com max_age: 604800
补充说明
添加网站A记录后,Google Admin Toolbox的Check MX工具完全检测失败,提示Check was not possible。我用Cloudflare及Cloudflare Worker托管MTA-STS策略和网站,需设置192.0.2.0/24段的虚假A记录(如192.0.2.1),Cloudflare后台真实A记录如下:
| 类型 | 名称 | IPv4地址 | TTL |
|---|---|---|---|
| A | ausset.au. | 192.0.2.1 | 1 |
| A | mta-sts.ausset.au. | 192.0.2.1 | 1 |
我曾测试不使用Cloudflare Worker,将MTA-STS策略托管在带真实IP的服务器上,仍收到相同的“MTA STS is malformed”错误,可排除Cloudflare Worker配置问题。
问题出在MTA-STS策略文件的MX规则格式上,RFC8461要求MX条目必须与DNS中的MX记录完全匹配,包括结尾的点号。
你的DNS MX记录中的服务器都是带结尾点的(比如aspmx.l.google.com.),但策略文件里写的是aspmx.l.google.com和*.aspmx.l.google.com,缺少了结尾的点号。Google的检测工具对这个格式要求严格,而MxToolbox可能做了兼容处理。
修正后的MTA-STS策略文件应该是:
version: STSv1 mode: testing mx: aspmx.l.google.com. mx: *.aspmx.l.google.com. max_age: 604800
另外,关于Check was not possible的问题,是因为你使用了192.0.2.0/24的保留IP段,Google的检测工具无法访问该IP地址对应的服务器。你可以暂时改用真实IP完成检测,或者忽略这个提示——只要MTA-STS策略文件能被正常访问(比如通过curl测试),就不影响实际功能。
内容的提问来源于stack exchange,提问作者miu

