外贸邮箱最常遇到的问题之一:邮件发出去了,客户却说没收到,一查在垃圾箱里;或者直接收到一封退信,里面写着 SPF check failed、DMARC policy 之类看不懂的英文。
绝大多数情况,原因都一样:域名的SPF、DKIM、DMARC没有配好。
这三条记录跟邮箱是哪家的无关,跟你的域名有关。不管你用Hostinger、Zoho、Google Workspace还是腾讯企业邮箱,都要在域名的DNS里把它们加上。
本文先用大白话讲清楚三者是什么,再给出常用邮箱的记录值和添加步骤,最后讲怎么检查。
为什么现在必须配
以前没配SPF、DKIM,邮件多半也能收到。这几年情况变了:
- Gmail从2024年2月起要求:所有发给Gmail的邮件,发信域名都要通过SPF或DKIM验证;每天发5000封以上的,SPF、DKIM、DMARC三项都要有;
- Outlook.com、Hotmail从2025年5月起对大量发信的域名提出了同样的要求;
- 企业客户用的邮件网关(Microsoft 365、Proofpoint、Mimecast等)也会参考这几项来判断邮件是不是伪造的。
外贸企业邮箱一天发不了5000封,但没有SPF和DKIM的邮件,在Gmail和企业邮箱网关那里本来就是被重点怀疑的对象。配齐三项,是让业务邮件进收件箱的基本条件。
三条记录分别是什么
可以把发邮件想成寄快递:
| 记录 | 打个比方 | 作用 |
|---|---|---|
| SPF | 公司公布的「授权快递员名单」 | 列出哪些服务器有权用你的域名发信。收件方对照名单,不在名单上的就可疑 |
| DKIM | 包裹上的防伪封条 | 邮箱服务商给每封邮件加一个数字签名,收件方用你DNS里的公钥核对,证明邮件确实是你发的、途中没被篡改 |
| DMARC | 公司给快递站的处理说明 | 告诉收件方:SPF和DKIM都没通过的邮件怎么处理(照收、进垃圾箱、拒收),还可以让对方把统计报告发给你 |
三者都是域名DNS里的记录,在你管理域名解析的地方添加:域名用Hostinger的DNS,就在hPanel里加;用Cloudflare,就在Cloudflare里加。
先确认域名的DNS在哪里:用 whois 或者域名注册商后台查看域名的NS(Nameserver)。不清楚NS是什么,见《什么是Nameserver?》。
常用邮箱的记录值
下表是各家常见的值,以你自己邮箱后台显示的为准,尤其是DKIM,每个域名都不一样。
| 邮箱 | SPF里要包含的 | DKIM在哪里拿 |
|---|---|---|
| Hostinger邮箱 | include:_spf.mail.hostinger.com | hPanel邮箱管理里的DNS设置,三条CNAME(hostingermail-a/b/c._domainkey) |
| SiteGround邮箱 | 域名用SiteGround的DNS时自动配置 | Site Tools →「Email」→「Authentication」 |
| Zoho Mail | include:zohomail.com(国际版,以后台为准) | 管理控制台 → 域名 → 「Email Configuration」→「DKIM」 |
| Google Workspace | include:_spf.google.com | 管理控制台 → 应用 → Gmail →「验证电子邮件」 |
| Microsoft 365 | include:spf.protection.outlook.com | Microsoft Defender门户 → 电子邮件身份验证设置 → DKIM,两条CNAME |
| 腾讯企业邮箱 | include:spf.mail.qq.com | 管理后台的域名设置里查看 |
| 网易企业邮箱 | include:spf.qiye.163.com | 管理后台的域名设置里查看 |
| 阿里企业邮箱 | include:spf.qiye.aliyun.com | 管理后台的域名管理里开启DKIM |
SPF的完整写法是 v=spf1 include:xxx ~all。比如只用腾讯企业邮箱:
v=spf1 include:spf.mail.qq.com ~all
第一步:设置SPF
SPF是根域名上的一条TXT记录:
| 类型 | 主机记录(Name) | 记录值 |
|---|---|---|
| TXT | @ | v=spf1 include:邮箱服务商的地址 ~all |
一个域名只能有一条SPF
这是最常见的错误。很多人换了邮箱,又加了一条新的SPF,结果域名上有两条以 v=spf1 开头的TXT记录。有两条SPF,等于一条都没有,收件方会直接判定SPF出错。
Hostinger、SiteGround这类主机,在域名用它们的DNS时会自动加一条SPF。换成别家邮箱后,要修改这一条,而不是再加一条。
多个发信服务怎么合并
如果你的域名有好几个地方在发信,比如:
- 日常邮件用Zoho;
- 网站询盘表单用Hostinger的邮箱通过SMTP发。
就把它们的 include 写进同一条记录:
v=spf1 include:zohomail.com include:_spf.mail.hostinger.com ~all
像Brevo这类邮件营销、发信服务,一般用它们自己的发信域名做SPF,你这边只需要按它们的后台添加DKIM和验证记录,不用把它们写进SPF。以各家后台的要求为准。
注意两点:
- 最多10次DNS查询。每个
include至少算一次,有的服务商的include里面还嵌套了别的。不要把用不到的服务也写进去,超过10次SPF会直接失败; - 不再用的服务要删掉。旧邮箱停用了,它的include也就没有必要留着。
结尾用 ~all 还是 -all
~all(软失败):不在名单里的邮件标记为可疑,一般进垃圾箱;-all(硬失败):不在名单里的邮件直接拒收。
有的服务商(比如阿里)给的值是 -all。如果你很确定所有发信渠道都写进去了,用 -all 没问题;不确定的话用 ~all 更稳妥,有了DMARC之后,两者的实际效果差别不大。
第二步:设置DKIM
DKIM的值是邮箱服务商生成的,每个域名都不同,不能照抄别人的。步骤都差不多:
- 进入邮箱的管理后台,找到「DKIM」「域名验证」或「邮件认证」相关的页面;
- 点击生成或启用,后台会给出一到三条记录,类型是TXT或CNAME;
- 把记录添加到域名的DNS里;
- 回到邮箱后台点击验证,状态变成「已启用」或「已验证」。
DKIM的主机记录一般长这样:选择器._domainkey,比如 zmail._domainkey、google._domainkey、selector1._domainkey。
有两点容易出错:
- 有的DNS面板会自动在主机记录后面加上你的域名。后台给的是
zmail._domainkey.你的域名.com,在Hostinger、Cloudflare里只要填zmail._domainkey就行; - TXT类型的DKIM值很长,复制时不要漏掉开头的
v=DKIM1或者末尾的字符,也不要多复制空格和换行。
很多人只做了SPF,漏了DKIM。DKIM对送达率的作用其实更大:邮件被转发之后SPF会失效,DKIM签名还在。
第三步:设置DMARC
DMARC是主机记录为 _dmarc 的TXT记录。刚开始用最宽松的策略:
| 类型 | 主机记录 | 记录值 |
|---|---|---|
| TXT | _dmarc | v=DMARC1; p=none; rua=mailto:dmarc@你的域名 |
各部分的意思:
p=none:验证不通过的邮件也照常投递,只是让收件方知道你有DMARC;rua=mailto:...:收件方每天把汇总报告发到这个邮箱。报告是XML格式的压缩包,不打算看的话可以去掉这一段,写成v=DMARC1; p=none。
p=none 已经满足Gmail的要求。等运行一两个月、确认所有正常发信渠道都通过了验证,可以改成更严格的策略:
p=quarantine:验证不通过的进垃圾箱;p=reject:验证不通过的直接拒收,防止别人冒用你的域名发钓鱼邮件。
不要一开始就设成reject。如果有哪个发信渠道没配好(比如网站表单),它发的邮件会全部被拒收,你还不知道。
一个域名只能有一条DMARC记录。
在Hostinger里添加
域名用Hostinger的DNS(NS是 ns1.dns-parking.com、ns2.dns-parking.com)时:
- 登录hPanel,进入「Domains」→ 对应域名的「Manage」→「DNS / Nameservers」;
- 先在下方的记录列表里看一下有没有已经存在的SPF(TXT,内容以
v=spf1开头)和_dmarc记录,有的话点击编辑,不要重复添加; - 在上方的表单里选择类型,填写Name、内容,点击「Add Record」;
- DKIM如果是CNAME类型,「Points to」填后台给的目标地址。
用Hostinger自己的邮箱、域名也在Hostinger时,SPF和DKIM一般已经自动配好,只需要补一条DMARC。
更详细的DNS编辑页面操作见《如何在Hostinger上设置其他企业邮箱?》。
在Cloudflare里添加
域名的NS在Cloudflare时:
- 登录Cloudflare,选择域名,进入「DNS」→「Records」;
- 点击「Add record」,选择类型,「Name」填
@、_dmarc或者DKIM的选择器,「Content」填记录值; - DKIM如果是CNAME类型,「Proxy status」要关掉,设成灰色云朵的「DNS only」。开着代理的话,收件方查不到真实的记录,DKIM会验证失败;
- 保存。
Cloudflare的DNS生效很快,一般几分钟。
第四步:检查是否生效
DNS记录一般几分钟到几小时内生效。可以用这几种方法检查:
方法一:看Gmail里的原始邮件
用企业邮箱给自己的Gmail发一封邮件,在Gmail里打开它,点右上角的三个点 →「显示原始邮件」。页面顶部会显示:
- SPF:PASS
- DKIM:PASS
- DMARC:PASS
三项都是PASS就说明配置正确。显示FAIL或者NONE的,对照下面的常见问题排查。
方法二:用在线工具查
- MXToolbox:可以分别查询SPF、DKIM、DMARC记录,会提示语法错误、查询次数超限等问题;
- mail-tester:给它提供的临时地址发一封邮件,会给出一个10分制的评分和具体扣分项。
方法三:看邮箱后台
Zoho、Google Workspace、腾讯等邮箱的管理后台,在域名设置页面会显示每条记录的验证状态。
常见问题
SPF显示PASS,邮件还是进垃圾箱?
SPF只是其中一项。检查DKIM和DMARC是否也是PASS。都通过了还进垃圾箱,问题一般在内容上:邮件里链接和图片太多、用了短链接、标题像营销邮件、新域名一下子发了很多封。新域名开始的几周,发信量要慢慢加。
改了邮箱服务商,要动这三条记录吗?
要。SPF里的include换成新服务商的(旧的不用了就删掉),DKIM按新服务商的后台重新添加,DMARC不用改。
网站询盘表单发的邮件进垃圾箱,也跟这个有关吗?
有关。网站表单如果直接用主机的PHP发信,发信的服务器不在你的SPF里,也没有DKIM签名,基本都会进垃圾箱。解决方法是装SMTP插件,让表单通过你的企业邮箱发信,见《WordPress网站收不到询盘邮件?SMTP设置教程》。
收到一堆看不懂的DMARC报告邮件,怎么办?
这是 rua 设置的汇总报告,说明DMARC在工作。不想收的话,把记录里的 rua=mailto:... 删掉即可。想看懂报告,可以用免费的DMARC报告分析服务,把 rua 指向它们提供的地址。
这三条记录会影响网站吗?
不会。SPF、DMARC是TXT记录,DKIM是TXT或CNAME记录,都跟网站的A记录无关。
总结
让外贸邮件进收件箱,要在域名的DNS里加三样东西:
- SPF:根域名上的一条TXT,
v=spf1 include:邮箱服务商 ~all。一个域名只能有一条,多个发信服务合并写; - DKIM:从邮箱后台复制,每个域名不同,CNAME类型在Cloudflare里要关掉代理;
- DMARC:
_dmarc上的一条TXT,先用v=DMARC1; p=none,稳定后再收紧。
配好之后用Gmail的「显示原始邮件」检查,三项都是PASS就可以了。还没选好企业邮箱的,可以先看《外贸企业邮箱哪家好?》。



