这两天给咱们开发的 Chrome 插件:Youtube 中文配音减少了账户注册和登录性能,其中有一步是邮箱验证,所以这边会在 Spring Boot 后盾给用户的邮箱发个验证信息。如果发邮件,之前的文章教程里就有,这里就不说了,着重说说这两天发现所有用 Gmail 注册的用户都被退件的问题。
报错景象
先来看看具体报错(如果您也碰到这种状况,那么能够看看前面的内容):
退信起因:发件人(youtubedubbing@mail.spring4all.com)域名的 DNS 记录未设置或设置谬误导致对方拒收此邮件。
host gmail-smtp-in.l.google.com[142.251.10.26] said: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the sender and Gmail users, and has been blocked. The sender must authenticate with at least one of SPF or DKIM. For this message, DKIM checks did not pass and SPF check for [mail.spring4all.com] did not pass with ip: [54.204.34.130]. The sender should visit https://support.google.com/mail/answer/81126#authentication for instructions on setting up authentication. k191-20020a636fc8000000b00565bcd33890si6279798pgc.848 – gsmtp (in reply to end of DATA command)
解决方案:请告诉你的邮箱管理员为邮箱域名设置正确的 DNS(SPF、DKIM、DMARC)记录。具体请见 http://service.exmail.qq.com/cgi-bin/help?subtype=1&&no=10005…。
问题剖析
从退信起因中 Google 给的链接内容十分多,大抵内容就是 Google 针对垃圾邮件滥用邮箱等行为做的防护机制。所以,如果您要反对 Gmail 的话,就必须合乎它所制订的身份配置要求,外面蕴含了:SPF 配置、DKIM 配置、ARC 配置以及 DMARC 配置。
Google 官网提供了一个工具:https://toolbox.googleapps.com/apps/checkmx/,能够用来检测你的一些列配置是否符合要求。您只须要输出你的邮箱域名,就能够看到如下的诊断后果:
那么多正告,显然是要缓缓解决能力不被拒收吧。。。不过那么多配置,是不是一下就晕了?
如果你懒得深刻看的话,上面 DD 就讲一下比拟疾速的解决不被拒收的配置。
解决方案
不要看有那么多正告和配置内容,其实只须要把 SPF 配置实现,Gmail 的发送就不成问题了。配置办法也很简略,就是在域名解析里加一条记录即可。
Gmail 官网也给出了介绍:
但第一次兴许你会跟我犯一样的错,就是间接用 v=spf1 include:_spf.google.com ~all
这个 value 了。。。其实应该要批改成你所用企业邮箱服务商的 spf 域名。
比方,DD 这边用的是腾讯的企业邮箱,所以值要设置成:v=spf1 include:spf.mail.qq.com ~all
。直观的讲,你的域名解析里须要有这样一条 TXT 记录:
SPF 汇总
这边汇总一下,国内比拟罕用的企业邮箱 SPF 配置,如果您正好碰到相似问题,能够间接选取应用:
- 腾讯企业邮箱:
v=spf1 include:spf.mail.qq.com ~all
- 阿里企业邮箱:
v=spf1 include:spf.mxhichina.com -all
- 网易企业邮箱:
v=spf1 include:spf.163.com -all
明天的分享就到这里,心愿对您有所播种!码字不易,欢送关注、珍藏、分享,反对一下。本文能够任意转载,但请注明原文链接 ^_^
欢送关注我的公众号:程序猿 DD。第一工夫理解前沿行业音讯、分享深度技术干货、获取优质学习资源