你通常只有在邮件认证失败、Gmail 将邮件归入垃圾邮件,或供应商要求发布特殊记录时,才会注意到DKIM 选择器,例如 tm1._domainkey.example.com 这样的 TXT 记录。这看起来只是小标签,但配置错误可能导致 DKIM 失败;若没有成功且对齐的 SPF,DMARC 也可能失败,从而影响投递。
同一域名使用多个发送服务时,问题更复杂。邮箱主机、营销工具和 CRM 各自使用不同密钥。不了解选择器,就难以判断签名由谁负责、应该轮换哪条 DNS 记录,以及为什么某条邮件流通过而另一条失败。整体配置可先参考商务邮箱指南。
把选择器视为查找 DKIM 密钥的标识。理解它与 DNS 的对应关系后,配置和排查就能按步骤进行。
什么是 DKIM 选择器?
DKIM 选择器是签名中的标签,告诉接收服务器从 DNS 获取哪个公钥。它让同一域名同时发布多个密钥,用于不同系统、邮件流或密钥轮换。
选择器不是密钥本身,而是查询提示。它出现在 DKIM-Signature 邮件头的 s= 标签中,签名域名则在 d= 中。接收方将两者组合成 selector._domainkey.example.com 这样的查询,从 TXT 记录获取公钥。
RFC 6376明确规定,验证方使用 d= 的域名和 s= 的选择器寻找公钥记录。选择器缺失或错误,会影响该签名的验证。
邮件包含
d=example.com和s=tm1时,接收方查询tm1._domainkey.example.com。
DKIM 选择器具体有什么作用?
它告诉接收方,某封邮件应使用哪个 DKIM 公钥,便于同一域名使用多个密钥而不发生名称冲突。
主要有三个运维用途。
- 区分发送服务。客服平台和事务邮件应用可以使用不同选择器。
- 支持密钥轮换。先发布新选择器,再切换签名,等旧邮件处理完毕后停用旧密钥。
- 限制影响范围。一家供应商的密钥泄露或被撤销,不一定需要修改其他发送服务。
因此,维护规范的系统常使用多个DKIM 记录,每条配有独立选择器,并像其他凭据一样管理,而不是永远共用同一个密钥。
| 术语 | 含义 | 示例 | 重要性 |
|---|---|---|---|
| 选择器 | DKIM 签名中的查询标签 | tm1 | 指定要查询的记录 |
| 签名域名 | d= 标签中的域名 | example.com | 定义 DKIM 的域名身份 |
| DNS 主机名 | 选择器加 ._domainkey 再加域名 | tm1._domainkey.example.com | 公钥所在位置 |
| 公钥记录 | DNS 返回的 TXT 记录 | v=DKIM1; p=... | 供接收方验证签名 |
在哪里找到 DKIM 选择器?
可以在邮件头或发送供应商的 DNS 说明中找到。真实邮件中,它是 DKIM-Signature 的 s= 值。
打开已收到邮件的原始邮件头,搜索 DKIM-Signature:,关注两个标签:
d=显示签名域名。s=显示 DKIM 选择器。
DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=tm1;
c=relaxed/relaxed; h=from:to:subject:date:message-id;
bh=...; b=...本例选择器是 tm1,需要检查的 DNS 记录为:
tm1._domainkey.example.com TXT设置新发送服务时,供应商通常提供选择器名称,以及 TXT 值或 CNAME 目标。TrekMail 描述的域名流程会显示必需记录并在面板中检查状态。有关必需 DNS 记录和检查 DNS 状态的文档可帮助填写准确字段。
如何在 DNS 中发布选择器?
在 selector._domainkey.yourdomain.com 创建 DNS 记录。通常是含 DKIM 公钥的 TXT,也有供应商使用 CNAME 指向其托管密钥。
两种常见模式如下。
基于 TXT 的 DKIM:
Host: tm1._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQ...基于 CNAME 的 DKIM:
Host: tm1._domainkey
Type: CNAME
Value: tm1.example-com.dkim.vendor.net.供应商指定选择器时,不要自行改名。若要求 s1,就发布 s1._domainkey。若 TrekMail 为实际使用的发送路线显示 dkim._domainkey,应准确使用该主机名和值。Nano 使用外部发送服务时可参考自定义 SMTP(BYO),但真正签名的供应商配置才是依据。
如何测试选择器是否正常?
先确认 DNS 记录可解析,再检查真实邮件是否使用相同选择器并通过 DKIM 验证。
首先直接查询 DNS:
dig +short TXT tm1._domainkey.example.com
nslookup -type=TXT tm1._domainkey.example.com空响应可能表示记录缺失、主机名错误、缓存未更新或其他 DNS 问题,单凭这一结果无法确定原因。
然后发送实际邮件,检查邮件头:
Authentication-Results: mx.google.com;
dkim=pass header.i=@example.com header.s=tm1 header.b=...
spf=pass smtp.mailfrom=example.com;
dmarc=pass header.from=example.com应检查:
dkim=passheader.s=tm1与已发布选择器一致header.i并非 DMARC 的 DKIM 对齐依据;应检查d=是否与 From 域名对齐
经常转发邮件时,也可阅读邮件转发。转发可能让 SPF 失败;如果签名覆盖的数据未被破坏,有效且对齐的 DKIM 可能维持 DMARC 通过,但不保证投递。
为什么选择器对应的验证会失败?
常见原因包括 DNS 主机名错误、密钥值损坏、实际签名使用另一选择器,或中继在签名后修改了邮件。
生产环境常见以下情况。
- DNS 主机名错误:发布了
_domainkey.tm1,而非tm1._domainkey。 - 域名错误:签名使用
d=mg.example.com,选择器却发布在example.com下。 - DNS 区域不一致:记录存在于非权威服务器,权威服务器却没有。
- 密钥被截断:DNS 面板粘贴时缩短了 TXT 值。
- 旧选择器仍在使用:密钥已经轮换,发送系统却继续用旧名称签名。
- 签名后内容变化:转发服务或网关修改了受保护的邮件头或正文。
Google 发件文档说明,不满足认证要求的邮件可能被限速或阻止。Google 也提到转发容易影响 SPF。因此,正确选择器很重要,但只是完整签名验证的一部分。
如何为选择器命名?
名称宜简单、明确,并与运维用途相关。好的名称能让团队迅速识别密钥负责人,减少故障时翻查多个管理面板的时间。
default、key1 或 test 可以工作,但长期看缺少背景信息。更明确的示例:
tm1用于 TrekMail 托管发送ses2026q1用于 Amazon SES 密钥轮换crm1用于 CRM 平台mktg2026a用于营销邮件
若供应商允许自定义名称,可用名称说明密钥归属和启用时间。管理多个域名时,这有助于审计,尤其是在多域名邮箱托管场景中。
如何降低选择器轮换风险?
在新选择器下发布新密钥,切换签名,等待旧邮件不再依赖原密钥,最后再移除旧记录。
除非供应商明确要求,否则不要直接覆盖活跃密钥。更谨慎的流程:
- 创建新选择器,例如从
tm1切换到tm2。 - 发布新的 DNS 记录。
- 等待并验证 DNS 更新。
- 将发送系统切换至新选择器。
- 发送测试邮件,确认新选择器的
dkim=pass。 - 在合适的过渡期内保留旧记录。
- 确认没有系统继续使用旧密钥,且此前邮件不再需要它后,才移除记录。
多个出站系统共存时尤其要如此。旧方式是长期共用一个密钥,依赖每个人记住配置;新方式为各发送系统分配独立选择器,计划轮换,并缩小变更影响。
TrekMail 如何处理选择器?
TrekMail 描述了 DNS 配置值和状态检查,以及付费套餐的托管发送和 Nano 的 BYO SMTP。它们有助于减少主机名和 DNS 状态判断的猜测,但实际功能应以当前套餐为准。
邮箱托管方面,所描述的功能包括统一域名面板、共享存储、通过邀请开通、转发和内置 IMAP 迁移。出站邮件另有两种模式:
- 付费套餐可使用 TrekMail 托管 SMTP,据描述用你的域名 DKIM 密钥签名。
- Nano 使用 BYO SMTP,活跃选择器和签名行为由外部发送供应商控制。
外部供应商负责签名时,通常采用其 DNS 说明中的选择器;TrekMail 托管 SMTP 负责签名时,采用面板显示的对应记录。文中 Starter 起价为每月 $3.50,付费套餐提供 14 天试用并要求信用卡,Nano 被描述为免费且没有试用期。请在TrekMail 价格页核实当前条件,以及不按用户收费的固定费用模式。
DKIM 选择器故障排查清单
按固定顺序排查:确认邮件头选择器,检查准确主机名上的 DNS 记录,确认发送系统使用它,并检查传输过程是否损坏签名内容。
- 查看实际邮件,记下
s=和d=。 - 直接在 DNS 查询
selector._domainkey.domain。 - 检查权威服务器,而不只看注册商界面。
- 确认供应商要求 TXT 还是 CNAME。
- 比较 From 域名与签名域名,检查 DMARC 对齐。
- 若邮件在转发、网关或邮件列表软件中变化,重新测试。
如果直发邮件通过而转发邮件失败,原因可能是转发方破坏签名,而非选择器。Google 的转发说明也提到这种情况。可同时阅读将域名邮件转发到 Gmail。
总结:关于选择器应记住什么?
DKIM 选择器告诉接收方,应从 DNS 获取哪个公钥。记住这一对应关系,大部分 DKIM 排查会更清晰。
正确选择器、正确 DNS 主机名和对应签名配置是必要条件,却不保证 DKIM 验证或投递成功。先查邮件头,再查 DNS,最后查传输中的内容变化。按发送系统分开选择器,用新名称轮换而不是直接覆盖。TrekMail 描述的多域名服务包括托管、DNS 检查、迁移工具和不按用户收费的固定价格,使用前请核实当前条件。