这两天给我们开发的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退回的问题解决方法的更多相关文章

  1. 【Java】JavaMail使用网易企业邮箱发邮件

    邮件发送器 /** * 邮件发送器 * * @author Zebe */ public class MailSender implements Runnable { /** * 收件人 */ pri ...

  2. spring boot log4j2与三方依赖库log4j冲突无法初始化问题解决方法

    因为从Spring Boot 1.4开始,spring boot就不支持log4j了,必须是log4j2或者logback,具体两者如何配置以及NDC的支持可以参考spring boot精华版. 这里 ...

  3. C# 用QQ企业邮箱发邮件

    问题System.Net.Mail下的SmtpClient来发送邮件,而System.Net.Mail only仅支持Explicit SSL 不要465端口,用25,不用EnableSsl = tr ...

  4. 用python给邮箱发邮件,问题,以及解决方法。

    模版 import smtplib #导入相关模块 from email.mime.text import MIMEText from email.utils import formataddr de ...

  5. Spring Boot 2.X(十三):邮件服务

    前言 邮件服务在开发中非常常见,比如用邮件注册账号.邮件作为找回密码的途径.用于订阅内容定期邮件推送等等,下面就简单的介绍下邮件实现方式. 准备 一个用于发送的邮箱,本文是用腾讯的域名邮箱,可以自己搞 ...

  6. Springboot 系列(十七)迅速使用 Spring Boot Admin 监控你的 Spring Boot 程序,支持异常邮件通知

    1. Spring Boot Admin 是什么 Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 S ...

  7. MVC4/5+jquery+bootstrap样式+dataTables+linq+WCF+EF6后台和前台的框架集合!好蛋疼哦!数据库支持MYSQL 和MSSQL,oracle。集成腾讯企业邮箱收邮件同步用户SSO登陆等功能。

    花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才 ...

  8. python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式

    配置文件:UiObjectMapSendMap.ini用来存放配置信息 GetOptionSendMail.py 用来读取配信息 #encoding=utf-8from selenium.webdri ...

  9. mailx加163邮箱发邮件

    mailx加163邮箱发邮件 参考:https://www.cnblogs.com/myvic/p/9579954.html 配置 $ yum install mailx -y $ vim /etc/ ...

  10. Spring boot 默认静态资源路径与手动配置访问路径的方法

    这篇文章主要介绍了Spring boot 默认静态资源路径与手动配置访问路径的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下   在application.propertis中配置 ##端口号 ...

随机推荐

  1. Git开发、发布、缺陷分离模型概述(支持master/develop/feature/release/hotfix类型分支)

    Git是什么? Git是一种分布式版本控制系统,它可以记录文件的修改历史和版本变化,并可以支持多人协同开发.Git最初是由Linux开发者Linus Torvalds创建的,它具有高效.灵活.稳定等优 ...

  2. Python-查询所有python版本

    C:\Users\liujun>where pythonD:\Python\Python310\python.exeD:\Python\Python38\python.exeC:\Users\l ...

  3. 【编程日记】搭建PyCharm集成开发环境

    0.相关确定 本教程使用的版本号为专业版PyCharm 2022.3.2,如果您是初学者,为了更好的学习本教程,避免不必要的麻烦,请您下载使用与本教程一致的版本号. 1.PyCharm的下载 官网下载 ...

  4. 推荐一个日历转换开源工具库,支持C#、Java、PHP等主流的语言

    日历对我们来说,最熟悉的就是阳历和农历,在中国每年都有固定的节日.节气.中国特有传统节日,有些节日是固定的,但是节气这些都需要我们经过一定规则换算出来. 所以,今天给大家推荐一个开源库,它支持阳历.阴 ...

  5. 解码器 | 基于 Transformers 的编码器-解码器模型

    基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶.本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion ...

  6. vue 自己实现一套 keepalive 方案

    vue自定义keepalive组件 前一阵来了一个新的需求,要在vue项目中实现一个多开tab页面的功能,本来心想,这不简单嘛就是一个增加按钮重定向吗?(当然如果这么简单我就不写这个文章了).很快写完 ...

  7. [Qt开发]一口气搞懂串口通信

    好多小鳄鱼 一.关于串口通信: Qt的确有自己的串口通信类,就是QSerialPort,但是我们在使用过程中因为要更加定制化的使用串口通信类减小开发的难度,所以我们会提供一个串口通信类,也就是这个Se ...

  8. 二维数组初始化vector, 以及类型转换问题

    //二维数组的初始化1 vector<vector<float>> _box_parm(class_row_num, vector<float>(class_col ...

  9. 03-面试必会-Mysql篇

    1. Mysql 查询语句的书写顺序 Select [distinct ] <字段名称> from 表 1 [ <join 类型> join 表 2 on <join 条 ...

  10. 国标平台视频流抓取及rtp包解析

    最近遇到国标平台无法播放视频流的问题.需要检查视频接收端和播放端视频的收包和发包是否正常.但是只看pcap文件不是很直观,所以将pcap文件中的rtp包解析出来,用播放器将视频播放出来,以更直观的判断 ...