跳转到内容
搜索文档

故障排除

最后更新 查看 MarkdownAgent 设置

电子邮件身份验证对成功投递至关重要。本指南帮助你排查 Email Service 中常见的 SPF、DKIM 和 DMARC 问题。

SPF (Sender Policy Framework) 问题

多个 SPF 记录

域名上不允许存在多条 SPF 记录,否则会阻止 Email Service 正常工作。若域名有多条 SPF 记录:

  1. 登录 Cloudflare 仪表板,选择你的账户和域名,然后前往 DNS > Records

    Go to Records ↗
  2. 查找多条以 v=spf1 开头的 TXT 记录。

  3. 删除不正确的 SPF 记录。

  4. 确保保留正确的 SPF 记录:

    • 对于 Email Routing(根域名)v=spf1 include:_spf.mx.cloudflare.net ~all
    • 对于 Email Sending(cf-bounce 子域名)v=spf1 include:_spf.mx.cloudflare.net ~all

若不确定应保留哪条 SPF 记录,可全部删除并让 Cloudflare 重新生成所需记录:

  1. DNS > Records 中,删除受影响名称上所有以 v=spf1 开头的 TXT 记录。
  2. 前往 Compute(计算) > Email Service(电子邮件服务),重新接入或重新启用受影响的服务。Cloudflare 会自动添加正确的 SPF 记录。

缺少 SPF 记录

若邮件因 SPF 失败被拒收:

  1. 登录 Cloudflare 仪表板,选择你的账户和域名,然后前往 DNS > Records

    Go to Records ↗
  2. 为相应服务添加 TXT 记录:

    • 对于 Email Routing(电子邮件路由)Name(名称)@(根域名),Content(内容)v=spf1 include:_spf.mx.cloudflare.net ~all
    • 对于 Email Sending(电子邮件发送)Name(名称)cf-bounceContent(内容)v=spf1 include:_spf.mx.cloudflare.net ~all
  3. 若根域名上已有 SPF 记录,请修改它以包含 include:_spf.mx.cloudflare.net

SPF 记录语法错误

常见的 SPF 记录语法问题:

  • 缺少版本:SPF 记录必须以 v=spf1 开头
  • 多个 include:使用多个独立的 include: 语句合并多个服务
  • DNS 查询过多:SPF 记录总共限制为 10 次 DNS 查询
  • all 机制不正确:使用 ~all(SoftFail)或 -all(Fail),不要使用 +all

正确格式:

v=spf1 include:_spf.mx.cloudflare.net include:other-service.com ~all

检查 SPF 记录

验证 SPF 记录是否配置正确:

dig TXT example.com +short | grep spf

预期结果应包含:

"v=spf1 include:_spf.mx.cloudflare.net ~all"

DKIM (DomainKeys Identified Mail) 问题

缺少 DKIM 记录

Email Service 会自动为你的域名生成 DKIM 密钥,但 DNS 记录必须正确配置。Email Sending 与 Email Routing 使用不同的 DKIM selector:

  1. Cloudflare 仪表板 中,前往 Compute(计算) > Email Service(电子邮件服务)
  2. 选择你的域名。
  3. 在相应服务的 Settings(设置) 页面检查:
    • Email Sending(电子邮件发送):前往 Email Sending(电子邮件发送) > Settings(设置) 查找发送 DKIM 记录(cf-bounce._domainkey)。
    • Email Routing(电子邮件路由):前往 Email Routing(电子邮件路由) > Settings(设置) 查找路由 DKIM 记录(cf2024-1._domainkey)。
  4. 复制 DKIM 记录详情。
  5. 前往 DNS > Records,使用正确的 selector 名称和公钥添加 DKIM TXT 记录。

DKIM 密钥轮换

若需要轮换 DKIM 密钥:

  1. 联系 Cloudflare 支持以请求密钥轮换。
  2. 获得新密钥后更新 DNS 记录。
  3. 在过渡期间监控邮件投递情况。

检查 DKIM 记录

验证 DKIM 记录是否配置正确:

# Check Email Sending DKIM
dig TXT cf-bounce._domainkey.example.com +short

# Check Email Routing DKIM
dig TXT cf2024-1._domainkey.example.com +short

任一预期结果示例:

"v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

DKIM 签名验证失败

若 DKIM 验证失败:

  1. 确认 DNS 中存在 DKIM 记录
  2. 检查记录名称是否与正确的 selector 匹配:
    • Email Sending:cf-bounce._domainkey.yourdomain.com
    • Email Routing:cf2024-1._domainkey.yourdomain.com
  3. 确保 DNS 记录中没有多余空格或字符
  4. 等待 DNS 传播(最长 48 小时)
  5. 使用在线 DKIM 验证工具测试配置

DMARC (Domain-based Message Authentication, Reporting & Conformance) 问题

缺少 DMARC 策略

虽然不是必需,但 DMARC 能显著改善邮件可投递性:

  1. 在 Cloudflare 仪表板中前往 DNS > Records

    Go to Records ↗
  2. 添加 TXT 记录:

    • Name(名称)_dmarc
    • Content(内容)v=DMARC1; p=quarantine; rua=mailto:[email protected]

DMARC 策略过于严格

若严格的 DMARC 策略导致投递问题:

  1. 从宽松策略开始:p=none(仅监控)
  2. 持续数周监控 DMARC 报告
  3. 逐步提高严格程度:p=quarantine,然后 p=reject
  4. 确保 SPF 与 DKIM 均正确对齐(alignment)

DMARC 对齐问题

DMARC 要求 SPF 或 DKIM 对齐(alignment):

SPF 对齐Mail From 标头中的域名必须与 From 标头中的域名对齐
DKIM 对齐:DKIM 签名域名必须与 From 标头中的域名对齐

Email Service 会自动确保正确对齐。

检查 DMARC 记录

验证 DMARC 记录:

dig TXT _dmarc.example.com +short

结果示例:

"v=DMARC1; p=quarantine; rua=mailto:[email protected]; ruf=mailto:[email protected]; sp=quarantine"

本地开发问题

"Cannot serialize value: [object ArrayBuffer]"(无法序列化值:[object ArrayBuffer])

在使用 wrangler dev 进行本地开发时,若在附件字段中传入 ArrayBuffer 内容,会出现此错误。本地 email 绑定模拟器无法序列化 ArrayBuffer 值。

解决方案: 使用 npx wrangler deploy 部署 Worker,并在已部署版本上测试二进制附件(图片、PDF)。基于文本的附件字符串内容在本地开发中可正常使用。更多详情请参阅邮件发送的本地开发

常见投递问题

邮件进入垃圾箱

若邮件进入垃圾邮件文件夹:

  1. 检查身份验证:确保正确配置 SPF、DKIM 和 DMARC
  2. 域名声誉:新域名初期声誉可能较低
  3. 内容质量:避免垃圾邮件触发词和过度 HTML 格式
  4. 发件人声誉:监控退信率与投诉率
  5. 列表卫生:移除已退信和无效的电子邮件地址

高退信率

要降低退信率:

  1. 验证电子邮件地址:使用实时验证
  2. 保持列表干净:立即移除硬退信
  3. 监控反馈循环:订阅 ISP 反馈循环
  4. 逐步预热:新域名从小流量开始

ISP 特定问题

不同 ISP 有特定要求:

  • Gmail:需要较强的域名声誉与身份验证
  • Outlook/Hotmail:对内容和发件人声誉敏感
  • Yahoo:严格执行 DMARC
  • 企业邮箱:通常有严格的过滤规则

测试工具

使用以下工具验证电子邮件身份验证设置:

  1. MX Toolbox:检查 SPF、DKIM 和 DMARC 记录
  2. DMARC Analyzer:验证 DMARC 策略与对齐
  3. Mail Tester:测试邮件可投递性与身份验证
  4. Google Admin Toolbox:Google 的电子邮件身份验证检查工具

获取帮助

若仍遇到身份验证问题:

  1. 查看 Email Service 分析 中的投递指标
  2. 查看退信消息中的具体错误代码
  3. 联系 Cloudflare Support,并提供:
    • 域名
    • 示例邮件标头
    • 具体错误消息
    • SPF、DKIM 和 DMARC 记录配置

这篇文档对您有帮助吗?