最近有不少折腾云服务和独立博客的朋友反馈,说自己配好了 Cloudflare 的邮件转发(Email Routing),原本用来防止主邮箱被垃圾邮件轰炸或者保护隐私的,结果发现在国内居然被 QQ 邮箱“拉黑”了。

发出的邮件石沉大海,或者直接被丢进垃圾箱,甚至干脆被拒收。为什么会出现这种情况?是 Cloudflare 的信誉度出问题了吗,还是 QQ 邮箱太“严格”?今天就带大家好好分析一下背后的技术原因,并给出几套靠谱的解决方案。

为什么 QQ 邮箱要拦截?

首先要明白,QQ 邮箱(以及腾讯其他的邮件服务)对于反垃圾邮件的策略一直是非常激进的。这其实是为了保护用户,但有时也伤及无辜。

Cloudflare 的邮件转发机制,本质上是代发。你的域名虽然设置了 MX 记录指向 Cloudflare,但在邮件传输协议(SMTP)层面,实际连接到 QQ 邮箱服务器投递邮件的 IP 地址,是 Cloudflare 的出口 IP,而不是你源服务器的 IP。

这就导致了两个核心问题:

DNS管理界面展示SPF记录配置示例

在域名DNS管理后台配置TXT记录以设置SPF策略

  1. SPF 记录不匹配: 你的域名 DNS 里通常会写 v=spf1 include:_spf.cloudflare.net -all,这看起来没问题,允许 Cloudflare 代发。但是,如果 Cloudflare 的某些节点 IP 不在这个列表里,或者 QQ 邮箱侧的 SPF 验证机制比较“死板”,就会认为发件人身份伪造,从而拒绝接收。

  2. DMARC 策略过严: 现在的域名流行设置 DMARC 记录来进一步防止钓鱼。如果你把策略设为了 p=reject(拒绝)或者 p=quarantine(隔离),而因为上述 SPF 或 DKIM 的问题导致验证未能通过,QQ 邮箱就会严格执行你的策略——直接拦截或拒收。

此外,Cloudflare 免费版的邮件转发出口 IP 是共享的。一旦有别的“坏小子”利用类似的节点发送了真正的垃圾邮件,导致该 IP 段被腾讯列入黑名单,你的邮件也会无辜受到牵连(受累于 IP 信誉度下降)。

怎么解决?别慌,几步排查

既然知道了原因,我们就能对症下药。按照以下步骤操作,大部分情况都能解决。

1. 检查并修改 SPF 记录

登录你的域名 DNS 管理后台(最好是在 Cloudflare 的 DNS 页面操作,因为它是权威 DNS)。找到你的 TXT 记录。

Cloudflare Email Routing 配置界面中的DKIM设置选项

在Cloudflare中找到并启用DKIM签名功能

确保你有一条 @host=@ 的 TXT 记录,内容类似于: v=spf1 include:_spf.cloudflare.net ~all

注意这里建议用 ~all(软失败),而不是 -all(硬失败)。软失败意味着如果验证不通过,接收方可以考虑收下,而不是直接拒之门外。当然,如果你确定只通过 Cloudflare 发信,保持现状也可以,但要确保 Cloudflare 的 SPF 包含块是最新的。

2. 放宽 DMARC 策略

DMARC 是个好东西,但在调试阶段别太激进。

你需要添加或修改一条 _dmarc.yourdomain.com 的 TXT 记录。

  • 临时方案: 先把策略调松。 v=DMARC1; p=none; rua=mailto:[email protected] 设置为 p=none 意味着即便 SPF/DKIM 验证失败,接收方(QQ 邮箱)也不要采取任何强制措施,该收就收。这是排查问题的第一步。

  • 观察与调整: 观察几天,如果邮件正常了,再慢慢调整为 p=quarantine(进入垃圾箱),最后稳定了再考虑 p=reject。同时记得配置 rua,这样 QQ 邮箱会把每天的投递报告发给你,你就能看到到底是哪一步验证失败了。

3. 配置 DKIM(关键一步)

很多时候 SPF 过了还是不行,就是因为缺了 DKIM(域名密钥识别邮件)。这相当于给你的邮件盖了一个官方认证的“防伪章”,证明邮件内容在中途没被篡改,且确实是你发出的。

  • 在 Cloudflare 面板中找到“Email Routing” -> “Configuration” -> “DKIM”。
  • 复制 Cloudflare 提供的 CNAME 记录。
  • 将这些记录添加到你的 DNS 管理中(通常 Cloudflare 会自动帮你加,但为了保险起见,最好手动确认是否存在且状态为有效)。

配置好 DKIM 后,QQ 邮箱不仅验证发送 IP(SPF),还会验证签名(DKIM)。双重验证通过,拦截概率会大大降低。

4. 申请解除黑名单(如果是 IP 问题)

如果你检查了 SPF/DMARC/DKIM 都没问题,QQ 邮箱依然直接拒绝连接(返回 550 或 554 错误),那很可能是 Cloudflare 的出口 IP 被腾讯拉黑了。

这事虽然是 Cloudflare 的问题,但你自己也能补救:

  1. 腾讯反垃圾邮件页面申诉: 搜索“腾讯邮箱的反垃圾邮件申诉平台”。
  2. 填写信息: 提供你的域名、被拦截的邮件截图(如果有)、以及 Cloudflare 邮件转发的出口 IP(可以在邮件头里看到,或者去 Cloudflare 官方文档查他们当前的 IP 段)。
  3. 耐心等待: 申诉成功后,通常 24-48 小时内会解封。

总结

QQ 邮箱拦截 Cloudflare 转发,归根结底是“信任链”断裂的问题。通过完善 DNS 验证记录(SPF/DMARC/DKIM)并必要时进行人工申诉,绝大多数情况下都能恢复畅通。

如果你在配置过程中遇到具体的报错代码,欢迎在评论区留言,我们可以一起参谋参谋。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭