Skip to content

在 Cloudflare 配 DNS 解析 ​

一句话

把 Resend 给的那几条记录加到 Cloudflare,让全世界的邮箱相信"这封信真的是你发的"。 5 分钟操作,等生效可能要几分钟到几小时。

先搞清楚这三条记录是干什么的 ​

记录全称作用不配会怎样
SPFSender Policy Framework声明"这些服务器可以用我的域名发信"收件方无法确认发信方,直接进垃圾箱
DKIMDomainKeys Identified Mail给每封信盖一个数字签名同上,而且信在传输中被改了也发现不了
DMARC域名消息认证告诉收件方"SPF/DKIM 没过时怎么办"Gmail / Outlook 对没有 DMARC 的域名越来越严格

三条都要配

只配 SPF 不配 DKIM,Gmail 大概率照样进垃圾箱。2024 年起 Gmail 和 Yahoo 对批量发信方强制要求 SPF + DKIM + DMARC 全部通过。

第 1 步:进 Cloudflare 的 DNS 页面 ​

  1. 登录 https://dash.cloudflare.com
  2. 点你的域名(比如 jdz.io)
  3. 左侧菜单 → DNS → Records

第 2 步:逐条添加 ​

对着 Resend 后台给你的那张表,一条一条点 Add record。

记录 1:SPF(TXT) ​

Cloudflare 里的字段填什么
TypeTXT
Namesend
Content从 Resend 复制,形如 v=spf1 include:amazonses.com ~all
TTLAuto

记录 2:DKIM(TXT) ​

字段填什么
TypeTXT
Nameresend._domainkey
Content从 Resend 复制,p=MIGfMA0GCSqGSIb3DQEB...(很长)
TTLAuto

DKIM 那一串最容易复制错

它有好几百个字符。用 Resend 页面上的复制按钮,不要手动框选 —— 框选很容易漏掉开头或结尾,而漏一个字符就整条失效,且报错只说"未验证"。

记录 3:MX ​

字段填什么
TypeMX
Namesend
Mail server从 Resend 复制,形如 feedback-smtp.us-east-1.amazonses.com
Priority10
TTLAuto

这条 MX 不会影响你收邮件

它的名称是 send(也就是 send.你的域名),只用来接收退信通知。 不会影响你 @你的域名 的正常收信。

记录 4:DMARC(TXT) ​

字段填什么
TypeTXT
Name_dmarc
Contentv=DMARC1; p=none;
TTLAuto

先用 p=none

p 是"SPF/DKIM 没过时怎么处理":

值含义
none什么都不做,只观察(新域名从这里开始)
quarantine丢进垃圾箱
reject直接拒收

一上来就写 reject,万一你哪条记录配错了,所有邮件会被直接拒收, 而你要等买家投诉才知道。跑顺一两周再收紧。

想收退信报告的话可以写成:

v=DMARC1; p=none; rua=mailto:dmarc@你的域名;

第 3 步:⚠️ 关掉小云朵 ​

这一步最多人栽

Cloudflare 的记录后面有个橙色小云朵(Proxy status)。

  • TXT 和 MX 记录本来就不能代理,Cloudflare 会自动显示成灰色,没问题
  • 但如果你为了发信另外加了 A 或 CNAME 记录,一定要点成灰色(DNS only)

橙色 = 流量经过 Cloudflare 代理,邮件相关的记录被代理之后验证必然失败, 而且报错只会说"未验证",完全看不出是这个原因。

第 4 步:回 Resend 点验证 ​

回到 Resend 的 Domains 页面,点你的域名,点 Verify DNS Records。

  • 顺利的话几秒到几分钟就全绿 Verified
  • 没绿的话等 10 分钟再点一次(Cloudflare 通常很快,但 DNS 缓存有时要更久)

自己查一下 DNS 有没有生效

不想干等的话,用在线工具查:https://mxtoolbox.com/SuperTool.aspx

  • 查 SPF:输入 send.你的域名,类型选 TXT
  • 查 DKIM:输入 resend._domainkey.你的域名,类型选 TXT
  • 查 DMARC:输入 _dmarc.你的域名,类型选 TXT

查得到就说明 DNS 那头没问题了。

第 5 步:回后台发测试邮件 ​

后台 → 站点设置 → 联系与法务 → 发信服务 → 测试,填自己的邮箱,发一封。

一定要用 Gmail 收一次

Gmail 是最严格的。它收到了、而且不在垃圾箱,才算真的配好了。

收到之后点开邮件 → 右上角三个点 → 显示原始邮件,看这三行:

SPF:   PASS
DKIM:  PASS
DMARC: PASS

三个都 PASS 才是真的通了。

常见问题 ​

Resend 一直显示 Pending / Failed

  1. 记录名称写全了? Cloudflare 里 Name 填 send 就行,不要填 send.jdz.io —— 它会自动补上域名,填全了会变成 send.jdz.io.jdz.io
  2. 小云朵是灰的吗?
  3. DKIM 那串完整吗? 复制到记事本数一下长度,和 Resend 页面上的对比
  4. 域名的 NS 真的指向 Cloudflare 吗? 如果域名还在别家解析, 你在 Cloudflare 加的记录根本不生效

测试邮件收到了,但进了垃圾箱

新域名的头几十封信进垃圾箱是正常的,收件方在观察你。

怎么改善:

  • 三条记录确认全部 PASS
  • 别一上来就群发 —— 新域名突然发几百封是最典型的垃圾邮件特征
  • 先让真实订单邮件跑一段时间,把信誉养起来
  • 把自己的地址加到收件人的通讯录里(对自己测试有用)

千万别在信誉没养起来时群发

一次群发被大量标记为垃圾邮件,会毁掉这个域名的发信信誉 —— 之后连订单确认和验证码都进垃圾箱。那是很难恢复的。

系统里的群发有三道闸挡着(必须先发测试邮件、收件人一人一行去重、 发出那一刻复查订阅状态),但发太早这件事只有你自己能控制。

这份文档只讲后台怎么用,不含任何真实密钥