一、为什么 Salesforce 邮件需要 SPF、DKIM 和 DMARC?
当 Salesforce 代替你的企业域名发送邮件(如 Workflow Email Alert、Apex 邮件、Case 通知等)时,收件方服务器会检查:这封邮件真的是 yourdomain.com 授权发出的吗?如果验证不通过,邮件可能直接进垃圾箱甚至被拒收。
2024 年起,Gmail 和 Yahoo 对批量发件人强制要求同时配置 SPF、DKIM 和 DMARC。如果你的 Salesforce 邮件发送量较大(日均 5000+ 封),不配置这三项几乎必然导致投递失败。
三者的分工:
- SPF(Sender Policy Framework)— 告诉收件服务器"哪些 IP/服务器被授权代表我的域名发邮件"
- DKIM(DomainKeys Identified Mail)— 用加密签名证明"邮件内容在传输过程中没被篡改,且确实来自授权发件方"
- DMARC(Domain-based Message Authentication, Reporting & Conformance)— 告诉收件服务器"如果 SPF 和 DKIM 都不通过怎么办",并提供报告机制

图 1:邮件认证流程 — 从发送到验证的完整链路
二、SPF 配置
2.1 Salesforce 的 SPF 记录
在你的域名 DNS 中添加以下 TXT 记录,将 Salesforce 的发送服务器加入授权列表:
v=spf1 include:_spf.salesforce.com ~all
如果你的域名已有 SPF 记录(比如已经包含 Google Workspace 或 Microsoft 365),不要创建第二条 SPF 记录,而是在现有记录中追加 include:_spf.salesforce.com:
v=spf1 include:_spf.google.com include:_spf.salesforce.com ~all
2.2 SPF 常见问题
- DNS Lookup 上限:SPF 最多允许 10 次 DNS 查询。每个
include都会消耗查询次数。如果你的 SPF 记录包含过多 include(如同时授权 Salesforce、Marketing Cloud、SendGrid、Mailchimp 等),可能超限导致 SPF 失败。可使用 SPF 展平工具(SPF Flattening)优化 - ~all vs -all:
~all(软失败)是推荐写法,表示未授权 IP 发出的邮件标记为可疑但不直接拒收;-all(硬失败)更严格,可能导致合法邮件被拒 - 一个域名只能有一条 SPF 记录:多条 SPF TXT 记录会导致验证失败
三、DKIM 配置
3.1 在 Salesforce 中创建 DKIM Key
DKIM 通过在邮件头中添加加密签名来验证邮件完整性。Salesforce 原生支持 DKIM 签名功能:

图 3:Salesforce DKIM 配置与密钥轮换流程
- 进入 Setup → Email → DKIM Keys(或搜索 "DKIM")
- 点击 Create New Key
- 填写:
- Selector:自定义名称(如
sf1),用于在 DNS 中标识这个密钥 - Alternate Selector:备用选择器(如
sf2),启用后 Salesforce 可自动轮换密钥 - Domain:你的发件域名(如
yourdomain.com) - Domain Match:选择匹配范围(仅限该域名,或包含子域名)
- Selector:自定义名称(如
- 保存后,Salesforce 会生成两条 CNAME 记录:
sf1._domainkey.yourdomain.com→ 指向 Salesforce 提供的值sf2._domainkey.yourdomain.com→ 指向 Salesforce 提供的备用值
- 将这两条 CNAME 记录添加到你的 DNS
- 回到 Salesforce,点击 Activate 激活 DKIM Key
3.2 为什么用 CNAME 而不是 TXT?
Salesforce 使用 CNAME 记录指向其托管的公钥,这样当 Salesforce 需要轮换密钥时,无需你手动更新 DNS。启用 Alternate Selector 后,Salesforce 会自动在两个选择器之间切换,实现无缝密钥轮换。
3.3 DKIM 注意事项
- DNS 生效时间:CNAME 记录添加后可能需要 24-48 小时生效,激活前请确认 DNS 已传播
- 每个发件域名独立配置:如果你用多个域名发邮件,需为每个域名创建单独的 DKIM Key
- 2048-bit Key:Salesforce 默认生成 2048-bit RSA 密钥,符合当前安全标准
四、DMARC 配置
4.1 DMARC 的作用
DMARC 建立在 SPF 和 DKIM 之上,它做两件事:
- 策略声明:告诉收件服务器当 SPF 和 DKIM 都验证失败时如何处理(放行、隔离、拒收)
- 报告机制:让收件服务器把验证结果报告发回给你,帮你监控域名是否被滥用
4.2 DMARC DNS 记录
在 DNS 中添加 TXT 记录,名称为 _dmarc.yourdomain.com:
初始阶段(仅监控,不影响投递):
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourdomain.com
过渡阶段(隔离不合规邮件):
v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@yourdomain.com; pct=20
严格阶段(拒收不合规邮件):
v=DMARC1; p=reject; rua=mailto:dmarc-reports@yourdomain.com
4.3 DMARC 对齐(Alignment)— 关键概念
DMARC 要求 SPF 或 DKIM 验证通过的域名与邮件 From 头中的域名对齐(一致)。这正是很多 Salesforce 管理员踩坑的地方:
问题:默认情况下,Salesforce 使用自己的域名作为 Return-Path(信封发件人),导致 SPF 验证通过的域名是 salesforce.com 而不是 yourdomain.com,DMARC SPF 对齐失败。

图 2:Salesforce 中的 DMARC 对齐问题 — SPF 对齐失败,DKIM 对齐通过
解决方案:
- 方案 A — 关闭 Bounce Management:在 Setup → Deliverability 中关闭 "Activate bounce management" 和 "Enable compliance with standard email security mechanisms"。关闭后 Salesforce 使用你的域名作为 Return-Path,SPF 对齐通过。但注意:关闭后不再自动处理退信
- 方案 B — 依赖 DKIM 对齐(推荐):正确配置 DKIM 后,即使 SPF 对齐失败,DKIM 签名域与 From 域一致即可满足 DMARC,无需关闭 Bounce Management
- 方案 C — 使用 Email Relay:通过企业邮件网关中转,详见第五节
五、Email Relay(邮件中继)
5.1 什么时候需要 Email Relay?
Email Relay 让 Salesforce 的出站邮件先经过企业的邮件服务器(如 Exchange Online、Google Workspace、Mimecast 等)再发给收件人。适用场景:
- 企业安全策略要求所有出站邮件经过 DLP(数据防泄漏)检查
- 需要统一的企业邮件签名或合规存档
- 需要企业邮件网关来集中管理 SPF/DKIM/DMARC
5.2 配置步骤
- 进入 Setup → Email → Email Relay
- 点击 Create,填写中继服务器的主机地址和端口
- 选择是否启用 TLS
- 配置发件人过滤条件(可限制哪些邮件走 Relay)
- 确保中继服务器的 IP 也在你的 SPF 记录中授权
六、排查清单
当 Salesforce 邮件进入垃圾箱或被拒收时,按以下顺序排查:
- 确认邮件发送路径:邮件是 Salesforce 直接发送,还是经过了 Email Relay 或第三方营销平台?
- 检查 SPF:用 MXToolbox SPF Check 验证 SPF 记录是否包含
_spf.salesforce.com,DNS Lookup 是否超过 10 次 - 检查 DKIM:在 Salesforce Setup 中确认 DKIM Key 状态为 Active,用 MXToolbox DKIM Check 验证 DNS 记录
- 检查 DMARC:确认
_dmarc.yourdomain.comTXT 记录存在 - 检查邮件头:在收到的邮件中查看原始邮件头(Gmail → 显示原始邮件),确认 SPF/DKIM/DMARC 各项结果
- 检查 Salesforce Deliverability 设置:Setup → Deliverability,确认 Access Level 设为 "All email"
七、最佳实践总结
- 最低配置:SPF + DKIM + DMARC (p=none) — 满足 Gmail/Yahoo 的基本要求
- 推荐配置:SPF + DKIM(含 Alternate Selector 自动轮换) + DMARC (p=quarantine) — 兼顾安全与投递
- 进阶配置:SPF + DKIM + DMARC (p=reject) + Email Relay — 适用于严格合规要求的企业
- DMARC 分阶段上线:先
p=none收集 2-4 周报告,确认合法邮件全部通过后再提升到p=quarantine,最终到p=reject - 不要忽略 Marketing Cloud / Pardot:如果同时使用这些产品发邮件,它们有独立的 SPF/DKIM 配置,需要分别设置
八、参考资料
- Salesforce Help: SPF and DKIM FAQ
- Salesforce Help: Set Up Secure DKIM Keys
- Google: Email Sender Guidelines