← Back
Platform2026-04-09

Salesforce SPF, DKIM, and DMARC Configuration Guide

一、为什么 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 都不通过怎么办",并提供报告机制

邮件认证流程:SPF、DKIM、DMARC

图 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 签名功能:

Salesforce DKIM 配置流程

图 3:Salesforce DKIM 配置与密钥轮换流程

  1. 进入 Setup → Email → DKIM Keys(或搜索 "DKIM")
  2. 点击 Create New Key
  3. 填写:
    • Selector:自定义名称(如 sf1),用于在 DNS 中标识这个密钥
    • Alternate Selector:备用选择器(如 sf2),启用后 Salesforce 可自动轮换密钥
    • Domain:你的发件域名(如 yourdomain.com
    • Domain Match:选择匹配范围(仅限该域名,或包含子域名)
  4. 保存后,Salesforce 会生成两条 CNAME 记录
    • sf1._domainkey.yourdomain.com → 指向 Salesforce 提供的值
    • sf2._domainkey.yourdomain.com → 指向 Salesforce 提供的备用值
  5. 将这两条 CNAME 记录添加到你的 DNS
  6. 回到 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 之上,它做两件事:

  1. 策略声明:告诉收件服务器当 SPF 和 DKIM 都验证失败时如何处理(放行、隔离、拒收)
  2. 报告机制:让收件服务器把验证结果报告发回给你,帮你监控域名是否被滥用

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 对齐失败。

DMARC 对齐问题示意图

图 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 配置步骤

  1. 进入 Setup → Email → Email Relay
  2. 点击 Create,填写中继服务器的主机地址和端口
  3. 选择是否启用 TLS
  4. 配置发件人过滤条件(可限制哪些邮件走 Relay)
  5. 确保中继服务器的 IP 也在你的 SPF 记录中授权

六、排查清单

当 Salesforce 邮件进入垃圾箱或被拒收时,按以下顺序排查:

  1. 确认邮件发送路径:邮件是 Salesforce 直接发送,还是经过了 Email Relay 或第三方营销平台?
  2. 检查 SPF:MXToolbox SPF Check 验证 SPF 记录是否包含 _spf.salesforce.com,DNS Lookup 是否超过 10 次
  3. 检查 DKIM:在 Salesforce Setup 中确认 DKIM Key 状态为 Active,用 MXToolbox DKIM Check 验证 DNS 记录
  4. 检查 DMARC:确认 _dmarc.yourdomain.com TXT 记录存在
  5. 检查邮件头:在收到的邮件中查看原始邮件头(Gmail → 显示原始邮件),确认 SPF/DKIM/DMARC 各项结果
  6. 检查 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 配置,需要分别设置

八、参考资料

Related Articles

Discussion

Ask a Question

Your email will not be published.

No questions yet. Be the first to ask!