Spring Boot通过企业邮箱发邮件被Gmail退回的问题解决方法
这两天给我们开发的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=1000580&&id=20012 。
问题分析
从退信原因中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。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源
Spring Boot通过企业邮箱发邮件被Gmail退回的问题解决方法的更多相关文章
- 【Java】JavaMail使用网易企业邮箱发邮件
邮件发送器 /** * 邮件发送器 * * @author Zebe */ public class MailSender implements Runnable { /** * 收件人 */ pri ...
- spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法
因为从Spring Boot 1.4开始,spring boot就不支持log4j了,必须是log4j2或者logback,具体两者如何配置以及NDC的支持可以参考spring boot精华版. 这里 ...
- C# 用QQ企业邮箱发邮件
问题System.Net.Mail下的SmtpClient来发送邮件,而System.Net.Mail only仅支持Explicit SSL 不要465端口,用25,不用EnableSsl = tr ...
- 用python给邮箱发邮件,问题,以及解决方法。
模版 import smtplib #导入相关模块 from email.mime.text import MIMEText from email.utils import formataddr de ...
- Spring Boot 2.X(十三):邮件服务
前言 邮件服务在开发中非常常见,比如用邮件注册账号.邮件作为找回密码的途径.用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式. 准备 一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞 ...
- Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知
1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...
- MVC4/5+jquery+bootstrap样式+dataTables+linq+WCF+EF6后台和前台的框架集合!好蛋疼哦!数据库支持MYSQL 和MSSQL,oracle。集成腾讯企业邮箱收邮件同步用户SSO登陆等功能。
花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才 ...
- python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式
配置文件:UiObjectMapSendMap.ini用来存放配置信息 GetOptionSendMail.py 用来读取配信息 #encoding=utf-8from selenium.webdri ...
- mailx加163邮箱发邮件
mailx加163邮箱发邮件 参考:https://www.cnblogs.com/myvic/p/9579954.html 配置 $ yum install mailx -y $ vim /etc/ ...
- Spring boot 默认静态资源路径与手动配置访问路径的方法
这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下 在application.propertis中配置 ##端口号 ...
随机推荐
- vue全家桶进阶之路9:常用指令
以下是一些常见的指令: v-bind - 用于绑定一个或多个属性到组件或 HTML 元素上. v-model - 用于双向绑定一个表单元素或组件的值到数据模型上. v-for - 用于循环遍历一个数组 ...
- select_related和prefetch_related函数
在数据库存在外键的其情况下,使用select_related()和prefetch_related()很大程度上减少对数据库的请求次数以提高性能 在表中查找数据的时候,使用外键表related_nam ...
- 使用taro+canvas实现微信小程序的图片分享功能
业务场景 二轮充电业务中,用户充电完成后在订单详情页展示订单相关信息,用户点击分享按钮唤起微信小程序分享菜单,将生成的图片海报分享给微信好友或者下载到本地,好友可通过扫描海报中的二维码加群领取优惠. ...
- Django自定义storage上传文件到Minio
首先新建一个MyStorage.py,自定义Storage类 from io import BytesIO from django.core.files.storage import Storage ...
- js 正则校验非法字符
今日使用 vue + element 对数据录入进行非法字符校验,到处找了一圈都不是想要的,于是自己按需求写一个 1.内容可以包含 大小写字母,中文和 . ( ) . , : % 2.内容第一位不允许 ...
- 云服务器挂载easyconnect
参考:easyconnect命令版地址 https://github.com/Hagb/docker-easyconnect 前提条件: 云服务器(以阿里云服务器 Centos7.6 为例) 用途: ...
- Python日期带时区转换工具类总结
目录 1.背景 2. 遇到的坑 3. 一些小案例 3.1 当前日期.日期时间.UTC日期时间 3.2 昨天.昨天UTC日期.昨天现在这个时间点的时间戳 3.3 日期转时间戳 3.4 时间戳转日期 3. ...
- 马拉车(manacher) & 回文自动机(PAM)
补充,PAM 的 a[0]=-1,这一点我每次写都要忘记. 读了徐安矣2023年集训队论文写的,对于差分性质和习题,我会在理解清楚之后再补充.本篇博客仅讨论前两种算法. 首先,马拉车和回文自动机都是处 ...
- 一次有关 DNS 解析导致 APP 慢的问题探究
目录 一.业务背景 二. 问题 三.问题排查 3.1.问题一: 基于DNS 延迟的解析 3.2.问题二:HTTPDNS侧 HTTPDNS基础理论 相关问题 四.优化方向 4.1.域名解析配置 4.2. ...
- 如何使用idea来查找所有未使用的代码?
背景 项目组需要对开发的项目进行一次清理,把一些未被引用的代码清理掉. 我们知道一段代码未被引用,那么代码通常是灰色的. 但是一个完整的项目,会存在成千上万个Java文件,如果一个一个看去需要花费太多 ...