站内通知、找回密码的邮件,客户说收不到。查发件记录,信都发出去了,SMTP返回250。问题不在自己这边,在收件方的判定上。退信和进垃圾箱是两件事,退信有回执,进垃圾箱什么都不会返回。
收件方看三样东西:SPF、DKIM、DMARC。SPF写在域名的TXT记录里,声明哪些IP有权用这个域名发信。DKIM是一对密钥,私钥签信、公钥挂在DNS上,收件方拿公钥验签。DMARC写在_dmarc子域,告诉收件方SPF和DKIM都没过的时候该怎么办。三条缺一条,评分就往下掉一截。只配SPF也能发出去,但大厂的邮箱会先扣分,同样的正文,配全的和没配全的落点不一样。
dig TXT example.com +short看SPF。正常的一条长这样:v=spf1 ip4:203.0.113.10 include:spf.exmail.qq.com -all。ip4写自己的发信IP,include引用服务商的记录,-all是硬失败,~all是软失败。这里最容易出两种错:一个域名挂了两条SPF记录,收件方直接判permerror;include层层嵌套超过十次,也是permerror。十次指整个SPF记录的DNS查询总次数,不是每条include算一次,嵌套三层很可能就超了。
dig TXT default._domainkey.example.com +short看DKIM公钥。default是selector,实际用哪个要问发信服务商,腾讯企业邮和阿里云的默认值不一样。查不到这条记录,说明DKIM根本没配,等于少了一道。配了但私钥和公钥对不上,验签照样失败,表现和没配一样,得在服务商后台重新生成一次。同一个域名可以挂多条selector,换服务商那次老的没删,两条并存不算错,但要确认信到底用哪条签的。签名域和From域不一致,对齐检查也过不了。这里还有个细节:From显示的是一个域,信封发件人是另一个域,SPF查的是信封那个。两个不一致,SPF过了,DMARC照样判失败。
_dmarc的TXT一开始可以写v=DMARC1; p=none; rua=mailto:dmarc@example.com,只收报告不拦截。跑两周,看报告里有哪些IP在用你的域名发信,确认都是自己的,再改成quarantine或者reject。直接上reject,容易把自己正常的发信渠道一起拦掉。报告是XML压缩包,一天一封,先用工具解开看,别直接扔一边。
最快的验证是给自己发一封,用Gmail打开原始邮件,找Authentication-Results那几行:spf=pass、dkim=pass、dmarc=pass。哪个是fail就修哪一条。三条全pass还进垃圾箱,那是内容或者发信IP信誉的问题,跟记录无关。新IP预热不够、短时间大量发信、正文里链接堆得太多,都会拉低评分。这时候去查IP的黑名单状态,mxtoolbox这类站点能一次查几十个名单,进了名单就申诉,等的周期按周算。
改DNS记录要等TTL过期,十分钟到一个小时不等。改完别急着下结论,隔一小时再发一封测试信,看结果。发之前把内容也过一遍,纯链接、只有一张图、标题全大写,这几种天生评分就低。
A5创业网 版权所有