腾讯云 SES 邮件推送:SPF、DKIM 与 DMARC 配置

按腾讯云官方流程配置 SES 发信域名:MX、SPF、qcloudsg2048 版 DKIM 记录、DMARC 发布,以及逐条核对用的 dig 命令。
4 分钟阅读
更新于 2026-11-04
平台专区
腾讯云sesdkimspfdmarc

腾讯云邮件推送(SES)在域名通过验证之前不会为你发信。它不像邮箱产品那样提供收件箱,只有发信域名、发信地址和模板,因此"认证配置"本身就是全部开通流程。

记录值由控制台生成,你负责发布到 DNS。本文以主域名为例走完整流程,附子域名的写法差异,最后给出腾讯云文档里用于核对的 dig 命令。

准备工作

  • 已在腾讯云控制台开通邮件推送,并完成账号实名认证。
  • 域名的 DNS 管理权限,DNSPod 或第三方服务商均可。
  • 一个没有注册给腾讯企业邮箱的域名——已注册 Exmail 的域名不能作为 SES 发信域名。
  • 每个账号最多可配置 10 个发信域名,本文用掉其中一个。

第一步:新建发信域名

登录 SES 控制台,进入发信域名,点击新建发信域名,填写域名并提交。只填 yourdomain.com 属于主域名;填 mail.yourdomain.com 属于非主域名,后续所有主机记录都要相应缩短。

回到发信域名列表,点击验证,弹窗会给出属于你这个域名的记录值。这些值才是权威来源,请从控制台复制,不要照抄本文。

第二步:发布 MX、SPF 与 DKIM

主域名的记录大致如下。手工扩展 SPF 时机制名写 ip4,不要写 ipv4;根域只能有一条 SPF 记录。

@        MX    mxbiz1.qq.com.                    优先级 5
@        TXT   v=spf1 include:qcloudmail.com ~all
qcloudsg2048._domainkey  TXT  v=DKIM1; k=rsa; p=MIIBIjANBg...
_dmarc   TXT   v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com

几个最容易导致验证失败的细节:

  • MX 值要带结尾的点。腾讯云文档明确写作 mxbiz1.qq.com.。有的 DNS 服务商会自动补点,有的不会,缺了点可能被当成相对域名。
  • SPF include 是 qcloudmail.com,不是企业邮箱那个。若同时用别家服务发信,把 include 合并进同一条:v=spf1 include:qcloudmail.com include:spf.example.com ~all,绝不要再加第二条 v=spf1。
  • DKIM 选 2048 位。新域名用 qcloudsg2048._domainkey(2048 位)或 qcloudsg1024._domainkey(1024 位);2026 年 7 月 6 日之前创建的域名仍是 qcloud._domainkey。另外地域不同前缀不同:国际站(新加坡)是 qcloudsg,国内广州是 qcloudgz2048、中国香港是 qcloudhk2048,一律以自己控制台显示的为准。优先 2048 位,1024 位只用于 DNS 服务商存不下超长 TXT 的场景。

旧域名要升级到 2048 位时,控制台支持两把密钥并行:先同时勾选 1024 与 2048,把新 selector 的记录一并发布,确认生效后再取消旧密钥,期间发信不会中断。

非主域名如 mail.yourdomain.com,主机记录相应改为:MX 与 SPF 用 mail,DMARC 用 _dmarc.mail,DKIM 用 qcloudsg2048._domainkey.mail。

第三步:先用 dig 核对,再点验证

解析同步通常需要 5 分钟到 2 小时。与其反复刷新控制台,不如直接查记录:

dig mx +short yourdomain.com
dig txt +short yourdomain.com
dig txt +short _dmarc.yourdomain.com
dig txt +short qcloudsg2048._domainkey.yourdomain.com

把四条结果与控制台逐字比对,再回到页面点提交验证。控制台会把当前解析值并排列出,逐条对照最快。四类记录全部匹配后,状态才会变为"已验证"。

第四步:发布一条能长期执行的 DMARC

控制台给的 DMARC 只是示例,策略由你定。先用监控模式,并填一个真实可收信的地址:

v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com; fo=1

保持 p=none 两到四周。聚合报告会告诉你哪些共享 IP 在代你发信、DKIM 对齐是否稳定。之后再走 p=quarantine; pct=25,最后到 p=reject。刚接入新发信服务就上 reject,是丢掉触发邮件的标准做法。

如果同时使用腾讯企业邮箱

企业邮箱是邮箱产品,include 值不同:v=spf1 include:spf.mail.qq.com ~all,MX 为 mxbiz1.qq.com 与 mxbiz2.qq.com,优先级 5 和 10。由于 Exmail 域名不能注册为 SES 发信域名,两者必须分域名使用:主域名留给邮箱,子域给 SES。这样也能把发信信誉隔离开。

从接收方验证

通过控制台或 API 往自己的 Gmail 发一封测试信,打开显示原始邮件,应看到 spf=pass(IP 属于腾讯云)、dkim=pass header.d=yourdomain.com、dmarc=pass。发布侧用 SPF 检测、DKIM 检测(selector 填 qcloudsg2048)、DMARC 查询和 MX 查询核对。如果信能投递却进垃圾箱,再跑 邮件投递测试与 黑名单检测。

常见错误

  1. 把企业邮箱的 SPF 用在 SES 上。spf.mail.qq.com 授权的是邮箱系统,不是 SES 发信集群。SES 需要 qcloudmail.com。
  2. DKIM 主机记录选错。2026 年 7 月 6 日前创建的域名用 qcloud._domainkey,之后用 2048 或 1024 的新 selector,必须与控制台一致。
  3. MX 少了结尾的点。回信地址的 MX 必须是完整域名。
  4. 为接入新服务商再加一条 SPF。应当把 include 并进原有记录。
  5. 把"已验证"当成终点。域名验证通过,但策略是 p=none 又没留报表地址,等于对伪造一无所知。

常见问题

已在用的企业邮箱域名能接 SES 吗?

不能。注册给腾讯企业邮箱的域名无法添加为 SES 发信域名。给 SES 另开 mail.yourdomain.com 这类子域,主域名继续留给企业邮箱。

需要同时发布 1024 位和 2048 位的 DKIM 记录吗?

只有在现网迁移、需要在新密钥传播期间保持连续发信时才需要。新域名直接上 2048 位——1024 位偏弱,部分接收方会降低其权重。

记录都加了,为什么还是未验证?

要么解析尚未同步(腾讯云给的时间是 5 分钟到 2 小时),要么某个值与控制台差了一个字符。先用上面四条 dig 命令逐行比对,再重试。

SES 会用自己的域名签名吗?

不会。DKIM 签名使用你的发信域名,所以才能与 From 头对齐。若把 From 改成未验证的域名,SES 会直接拒绝发信,而不是代为签名。

这篇指南有帮助吗?