确认切换范围
先确认是只切换事务 / iemail,还是只切换营销,或者两个通道都切换。不要把 tx 和 mkt 的记录混用。
面向 TS 的邮件 DNS 执行手册:按客户接受度选择 NS 委托、CNAME 中间层或 TXT/MX/A 兜底方案,并为后续多通道切换预留命名空间。
TS 对客户默认只记一句:能委托专用子域 NS,就选方案 A;不能委托但能配 CNAME,就选方案 B;NS 和 CNAME 都不接受,才用方案 C,并明确告知后续新增或切换供应商大概率还要客户改 DNS。
本手册用于 TS 在客户沟通中快速判断方案、给出对应记录、确认话术边界,并识别哪些场景必须升级给技术同事。
在给任何 DNS 记录前,先收集下面 8 个信息。缺少这些信息时,不要直接承诺“以后切换供应商不用改 DNS”。
tx.example.com、mkt.example.com 或 news.example.com?p=none、quarantine 还是 reject?
flowchart TD
Start[客户需要配置发信 DNS] --> Q1{是否接受专用子域 NS 委托?}
Q1 -->|接受| A[方案 A:NS 子域委托]
Q1 -->|不接受| Q2{是否允许配置 CNAME?}
Q2 -->|允许| B[方案 B:CNAME 中间层]
Q2 -->|不允许| Q3{是否接受后续切换仍可能改 DNS?}
Q3 -->|接受| C[方案 C:TXT / MX / A 兜底]
Q3 -->|不接受| Esc[升级技术评审]
A --> PromiseA[客户改一次,后续切换通常由我们维护]
B --> PromiseB[多数场景可减少客户后续改动]
C --> PromiseC[只做基础兼容,不承诺免改]
客户愿意把专用发送子域委托给我们。客户只需做一次 NS 配置,后续 DKIM、SPF、DMARC、Tracking、Bounce、供应商切换大多由我们维护。
客户不愿委托 NS,但允许 CNAME。我们用中间域名隐藏底层供应商,适合大多数客户,但供应商精确校验时可能仍要补配置。
客户只允许 TXT/MX/A/AAAA。可做基础发信认证,但新增供应商、品牌追踪、DKIM 和 Bounce 的后续变更成本最高。
适合长期使用、多通道、多供应商切换、对交付率和维护成本要求高的客户。推荐按通道委托子域,而不是所有邮件都混在一个 em.example.com 下面。
| 客户接受度 | 客户需要做什么 | TS 可承诺什么 | 不能承诺什么 | 适合场景 |
|---|---|---|---|---|
| 高 | 新增专用子域并配置 NS,例如 tx.example.com、mkt.example.com | 后续多数 DNS 调整由我们维护,客户通常无需再次改 DNS | 不能承诺所有供应商都零审批;客户内部安全审批仍由客户负责 | 中大型客户、长期项目、多供应商切换、事务邮件和营销邮件并存 |
适合大多数客户。客户把 Tracking、DKIM、部分 Bounce 域名 CNAME 到我们的中间域名;我们再把中间域名指向 SendGrid、Spotler 或其他供应商。
| 客户接受度 | 客户需要做什么 | TS 可承诺什么 | 不能承诺什么 | 适合场景 |
|---|---|---|---|---|
| 中 | 配置 CNAME,以及 SPF/DMARC 所需 TXT | 我们用中间层降低供应商切换时的客户改动概率 | 不能承诺所有 DKIM、Tracking、Bounce 都能被中间层完全抽象 | 客户能加 CNAME,但不愿做 NS 委托;希望隐藏底层邮件供应商 |
只在客户明确拒绝 NS 委托和 CNAME 时使用。它不是推荐方案,而是兼容兜底方案。TS 必须提前说明:后续新增或切换供应商时,很可能需要客户再次添加或修改 DNS。
| 客户接受度 | 客户需要做什么 | TS 可承诺什么 | 不能承诺什么 | 适合场景 |
|---|---|---|---|---|
| 低 | 仅配置 TXT、MX、A/AAAA 等直接记录 | 尽量完成基础发信认证;SPF 和 DMARC 可部分稳定 | 不能承诺品牌追踪可用,也不能承诺后续供应商切换免改 DNS | DNS 权限受限、只做基础发信、不强依赖 branded tracking 的客户 |
为了后续多通道切换,不要所有邮件都使用同一组 click.example.com、bounce.example.com、s1._domainkey.example.com。建议按通道拆分命名。
flowchart LR Root[example.com] --> TX[tx.example.com
事务 / iemail] Root --> MKT[mkt.example.com
营销邮件] TX --> TXDNS[tx 中间 DNS] MKT --> MKTDNS[mkt 中间 DNS] TXDNS --> ProviderA[供应商 A] MKTDNS --> ProviderB[供应商 B] MKTDNS -.营销通道切换.-> ProviderC[供应商 C]
| 用途 | 推荐命名 | 不要默认使用 | 原因 |
|---|---|---|---|
| 事务 / iemail 发信域 | tx.example.com | example.com | 保护客户主域名声誉,便于单独切换事务通道。 |
| 营销发信域 | mkt.example.com 或 news.example.com | example.com | 营销邮件投诉、退订、声誉应与事务邮件隔离。 |
| 点击追踪 | click.tx.example.com / click.mkt.example.com | click.example.com 共用 | 一个 hostname 不能同时 CNAME 到两个供应商。 |
| 退信 / MAIL FROM | b.tx.example.com / b.mkt.example.com | bounce.example.com 共用 | 多供应商并行时 Bounce 路由、VERP、统计归属容易冲突。 |
| DKIM selector | tx-sg1、tx-sg2、mkt-sp1、mkt-sp2 | s1、s2 全局复用 | 便于供应商重叠期、密钥轮换、回滚和故障定位。 |
下面记录是 TS 给客户沟通时的模板。正式生成时必须由技术或系统把 example.com、customer123、yourcompany.com、供应商目标值替换为真实值。
| Host / 主机记录 | Type | Value / 记录值 | TTL | 谁维护后续记录 | 说明 |
|---|---|---|---|---|---|
tx.example.com | NS | ns1.your-dns.com | 300-3600 | 我们 | 事务 / iemail 通道专用子域。 |
tx.example.com | NS | ns2.your-dns.com | 300-3600 | 我们 | 至少两条 NS,保证冗余。 |
mkt.example.com | NS | ns1.your-dns.com | 300-3600 | 我们 | 营销通道专用子域;如果客户暂时没有营销通道,可先预留。 |
mkt.example.com | NS | ns2.your-dns.com | 300-3600 | 我们 | 后续营销供应商切换不影响事务通道。 |
_spf.tx.example.com TXT "v=spf1 include:_spf.yourcompany.com -all"
_dmarc.tx.example.com TXT "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com"
tx-sg1._domainkey.tx.example.com CNAME tx-sg1.dkim.customer123.mta.yourcompany.com
tx-sg2._domainkey.tx.example.com CNAME tx-sg2.dkim.customer123.mta.yourcompany.com
click.tx.example.com CNAME click.tx.customer123.mta.yourcompany.com
open.tx.example.com CNAME open.tx.customer123.mta.yourcompany.com
b.tx.example.com CNAME b.tx.customer123.mta.yourcompany.com
注意:如果实际供应商要求 Bounce 使用 MX 而不是 CNAME,则由技术同事在委托子域内维护对应 MX/A/AAAA。
| Host / 主机记录 | Type | Value / 记录值 | TTL | 是否必填 | 说明 |
|---|---|---|---|---|---|
click.tx.example.com | CNAME | click.tx.customer123.mta.yourcompany.com | 300-3600 | 按需 | 事务邮件点击追踪;不做品牌追踪时可不启用。 |
open.tx.example.com | CNAME | open.tx.customer123.mta.yourcompany.com | 300-3600 | 按需 | 事务邮件打开追踪或图片域名。 |
tx-sg1._domainkey.tx.example.com | CNAME | tx-sg1.dkim.customer123.mta.yourcompany.com | 300-3600 | 必填 | DKIM selector,示例中 sg 代表 SendGrid;正式值按供应商生成。 |
tx-sg2._domainkey.tx.example.com | CNAME | tx-sg2.dkim.customer123.mta.yourcompany.com | 300-3600 | 必填 | 第二个 DKIM selector,便于轮换和冗余。 |
b.tx.example.com | CNAME | b.tx.customer123.mta.yourcompany.com | 300-3600 | 按供应商 | Return-Path / Bounce;部分供应商要求 CNAME,部分要求 MX/TXT,需按实际供应商确认。 |
tx.example.com | TXT | "v=spf1 include:_spf.yourcompany.com -all" | 300-3600 | 按 MAIL FROM | SPF 校验的是实际 MAIL FROM / Return-Path 域;如果供应商使用 b.tx.example.com 作为 MAIL FROM,则 SPF 位置需按供应商方案确认。 |
_dmarc.tx.example.com | TXT | "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com" | 300-3600 | 建议 | 先用 p=none 观察对齐情况,再考虑升级到 quarantine 或 reject。 |
| Host / 主机记录 | Type | Value / 记录值 | TTL | 风险 | 说明 |
|---|---|---|---|---|---|
tx.example.com | TXT | "v=spf1 include:_spf.yourcompany.com -all" | 300-3600 | 中 | 仅当 MAIL FROM 使用该域或供应商要求时配置;客户已有 SPF 时只能合并,不能新增第二条 SPF。 |
_dmarc.tx.example.com | TXT | "v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com" | 300-3600 | 低 | DMARC 通常不随供应商频繁变化,但必须确认 DKIM 或 SPF 与 Header From 对齐。 |
tx-sg1._domainkey.tx.example.com | TXT | "v=DKIM1; k=rsa; p=xxxx" | 300-3600 | 中 | 仅适用于供应商支持 DKIM TXT 的情况;如果供应商只支持 CNAME,则不可用。 |
b.tx.example.com | MX | 10 mx.yourcompany.com | 300-3600 | 中 | 只有我们处理退信或供应商明确要求 MX 时使用;MX 目标不要是 CNAME。 |
click.tx.example.com | A / AAAA | 1.2.3.4 | 300-3600 | 高 | 仅当我们自建追踪代理且能维护固定入口、TLS 证书和监控时使用;不要直接指向供应商易变 IP。 |
先确认是只切换事务 / iemail,还是只切换营销,或者两个通道都切换。不要把 tx 和 mkt 的记录混用。
方案 A 通常由我们内部改;方案 B 先验证供应商是否接受中间 CNAME;方案 C 默认需要客户再次改 DNS。
提前生成 DKIM、Tracking、Bounce、验证 TXT。新旧 DKIM selector 不要复用,例如从 tx-sg1 切到 tx-sp1。
切换前 24-48 小时降低相关记录 TTL;注意 DNS 有负缓存和各供应商验证延迟,不要刚改完就立刻切全量。
按通道、客户、批次逐步切换。观察 SPF/DKIM/DMARC 通过率、退信率、打开点击追踪、投诉和退订数据。
不要切完马上删除旧 DKIM、Tracking、Bounce、验证记录。等确认没有旧邮件、旧链接、旧 Bounce 还在使用后再清理。
| 触发条件 | 为什么要升级 | TS 先收集什么 | 对客户怎么说 |
|---|---|---|---|
客户已有 p=reject 或严格 DMARC | 如果 DKIM/SPF 没有和 Header From 对齐,邮件可能直接被拒收。 | 现有 SPF、DMARC、DKIM、发信 From 域名。 | “需要先确认认证对齐,避免影响投递。” |
| 客户 SPF 已经很长或接近 10 次 lookup | SPF 超过 10 次 DNS lookup 会导致 permerror。 | 当前完整 SPF TXT。 | “需要评估是否能安全合并 SPF。” |
| 客户只允许根域名,不愿使用子域 | 根域名 CNAME 不推荐,且营销声誉会影响主域。 | 客户为什么必须根域、是否可接受 tx/mkt/news。 | “为了保护主域名和后续切换能力,建议使用专用子域。” |
| 供应商要求精确 CNAME 值 | 我们的中间层可能无法通过供应商校验。 | 供应商给出的校验失败截图或记录要求。 | “该供应商可能要求直接解析,需要技术确认是否能兼容中间层。” |
| 客户要多供应商并行发送 | Tracking、Bounce、DKIM selector 容易冲突。 | 哪些通道、哪些供应商、各自 From 域名。 | “多通道并行需要先做命名规划,避免后续互相影响。” |
| 客户拒绝 NS 和 CNAME,但又要求未来切换免改 DNS | 技术上无法稳定承诺。 | 客户 DNS 限制说明。 | “如果不能使用 NS/CNAME,中间层能力受限,后续切换通常仍需改 DNS。” |
为了保证邮件认证、点击追踪、退信处理以及后续多供应商切换能力,我们建议为邮件发送单独委托子域,例如tx.example.com和mkt.example.com。客户侧只需完成一次 NS 委托,后续 DKIM、Tracking、Bounce 或底层供应商调整通常由我们维护,减少后续反复改 DNS 的成本。
如果贵司不方便做 NS 子域委托,可以配置我们提供的 CNAME 和必要 TXT 记录。这样大多数 Tracking、DKIM、Bounce 场景可以通过我们的中间域名维护,后续切换底层邮件服务商时通常不需要您重复修改同一批记录。但少数供应商可能要求精确校验值,如遇到这种情况我们会提前说明。
如果贵司策略不允许 NS 委托和 CNAME,我们可以尽量通过 TXT、MX、A/AAAA 等记录完成基础发信配置。但这种模式下供应商抽象能力有限,未来新增或切换邮件服务商时,DKIM、Tracking、Bounce 或供应商验证记录很可能需要再次由贵司添加或修改。
| 记录 / 概念 | 解决什么问题 | 能否抽象 | TS 需要记住的话 |
|---|---|---|---|
| SPF | 授权哪些服务器可以代表某个 MAIL FROM / Return-Path 域发信 | 可通过 include:_spf.yourcompany.com 部分抽象 | SPF 是 TXT;同一个域名只能有一条 SPF;最多 10 次 DNS lookup。 |
| DKIM | 邮件签名公钥,证明内容未被篡改且由签名域授权 | CNAME 最适合;TXT 取决于供应商是否支持 | 多供应商最好每个供应商用不同 selector,不要复用 s1。 |
| DMARC | 定义 SPF/DKIM 与 Header From 对齐后的处理策略和报告地址 | 通常不需要按供应商抽象 | 一个域名通常一条 DMARC;先 p=none 观察,再逐步收紧。 |
| Tracking | 点击、打开、图片等品牌追踪域名 | 很适合 CNAME 或 NS 委托 | 一个追踪域名不能同时 CNAME 到两个供应商,所以要按通道拆分。 |
| Return-Path / Bounce | 退信接收、投递失败统计、MAIL FROM 域 | 取决于供应商;CNAME、MX、TXT 都可能出现 | 先确认供应商要求;MX 目标不要是 CNAME。 |
| A / AAAA | 把域名直接指向 IP | 不适合做供应商抽象 | 不要让客户直接指向供应商 IP,除非技术确认有固定入口和证书方案。 |
收件方看到的是 Header From,例如 brand@news.example.com。DMARC 要求 SPF 或 DKIM 至少有一个通过,并且与这个 Header From 域名对齐。
d= 域名。em.example.com,但用户看到的是 @example.com,并不一定能通过 DMARC。如果客户的 DMARC 使用外部报告地址,例如 rua=mailto:dmarc@yourcompany.com,接收报告的域名通常需要做外部报告授权。否则部分收件方可能不会发送聚合报告。遇到这种需求时,TS 应升级技术确认,不要自行给最终记录。
方案 A 是推荐标准,方案 B 是大多数客户可接受标准,方案 C 是兜底兼容且必须提示后续变更成本。为了支持后续多通道切换,域名、Tracking、Bounce、DKIM selector 都要按通道拆分,避免事务邮件、营销邮件和不同供应商互相占用同一组 DNS 名称。