事件回顾到某天下班,然后听到手机消息,来自企业微信,是财务小姐姐向我发来了问候,问我为什么邮件突然就发不出去了。

我也愣住了,这个功能是去年做的了,一直没有什么问题,甚至另一个系统也是copy我的代码过去,一直流畅运行。我立马打开电脑,开始看日志。Could not connect to SMTP host:smtp.exmail.qq.com,port:465,这是我第一眼的看到的问题,要是知道后面的结果,我肯定会悔不当初。
一开始我以为是服务器连不上了,然后我开始百度,找了很多问题,试着改端口,587之类的。因为我们通过企业邮箱,账号通过企业微信账号申请,服务并不是qq服务器,所以走的465端口。然后改了很多版的代码,在灰度环境进行测试,奇了个大怪,都不行。然后发现有一方法通过修改jdk中某个文件,去掉 TLSv1协议,但是我们线上都是走的k8s。这个就不好进行修改。

解决无果,我就只能先说这个要等明天才能处理。第二天去了公司,就去问了哈运维可能是什么问题,运维说他们换了底包,我就想到可能是这个问题,但是很奇怪,把底包换了回来,依然是这个错误,然后我说把灰度环境回滚到几天前,因为几天前环境肯定是正确的把,然后回滚了依然不行,我都裂开了。几经折腾还是没有解决。这时候我就开始向上级汇报问题,上级又向架构师汇报问题,然后架构师说把错误堆栈日志发给他,然后我就在看他如何解决问题,我首先说了我的想法,然后他开始说你不能直接看TCP连接问题,他直接定位到jdk版本问题,然后他也百度,只是百度的这个NO appropriate protocol,当时我也百度了这个,多数都是说的数据库链接问题,我就没把主要问题放到这上面,随后架构师向我发来了解决办法,最终通过指定协议解决问题,如果能在jdk删除了那个TLSv1协议,我认为也能解决这个问题。

核心解决代码:
props.put(“mail.smtp.ssl.protocols”, “TLSv1.2”);

    public static Session getMailSession() throws GeneralSecurityException {Properties props = new Properties();// 开启debug调试
//        props.setProperty("mail.debug", "true");// 发送服务器需要身份验证props.setProperty("mail.smtp.auth", "true");// 设置邮件服务器主机名  qq
//        props.setProperty("mail.host", "smtp.qq.com");// 设置企业微信邮件服务器  企业邮箱props.setProperty("mail.smtp.host", "smtp.exmail.qq.com");// 设置企业微信邮件服务器端口props.setProperty("mail.smtp.port", "465");// 发送邮件协议名称props.setProperty("mail.transport.protocol", "smtp");
//        props.put("mail.smtp.starttls.required", "true");props.put("mail.smtp.ssl.protocols", "TLSv1.2");MailSSLSocketFactory sf = new MailSSLSocketFactory();sf.setTrustAllHosts(true);props.put("mail.smtp.ssl.enable", "true");props.put("mail.smtp.ssl.socketFactory", sf);Session session = Session.getInstance(props);return session;}

线上发送邮件问题记录(Could not connect to SMTP host:smtp.exmail.qq.com,port:465)相关推荐

  1. 写定时任务发送邮件报错(Could not connect to SMTP host:smtp.exmail.qq.com,port:465)

    需求阐述 在写完定时任务发送邮件之后,调试的时候发现报错:Could not connect to SMTP host:smtp.exmail.qq.com,port:465.一开始我以为是在for循 ...

  2. 发邮件报Failed to send email: Could not connect to SMTP host: smtp.exmail.qq.com, port: 465, response:-1

    我这里使用的是腾讯企业邮箱,原先设置的邮箱端口号是465,使用脚本自动发送邮件时,每次都报端口错误,经过,网上各种查找,将465换成了587,再次运行,即可成功:

  3. SpringBoot发送邮件报错:Got bad greeting from SMTP host: smtp.exmail.qq.com, port: 465, response: [EOF]

    错误 Got bad greeting from SMTP host: smtp.exmail.qq.com, port: 465, response: [EOF] 原配置: spring:mail: ...

  4. 使用hutool-all进行邮件发送报错Could not connect to SMTP host: smtp.qq.com, port: 465

    继承MailAccount类,在其中的getSmtpProps()方法中添加 props.put("mail.smtp.ssl.protocols", "TLSv1.2& ...

  5. JAVA服务器端发送邮件问题:Could not connect to SMTP host: smtp.qq.com, port: 465

    前言 在开发过程中,发送邮件经过测试是没有问题,然后部署到服务器中(腾讯云服务器),发送邮件一直报Could not connect to SMTP host: smtp.qq.com, port: ...

  6. 使用mail发送邮件 报错找不到服务器Could not connect to SMTP host: smtp.***.com, port: 465, response: -1

    使用mail发送邮件 报错找不到服务器 /*** 背景* 在使用javamail进行邮件发送的时候,报错:* Could not connect to SMTP host: smtp.***.com, ...

  7. Azkaban重新编译,解决:Could not connect to SMTP host: smtp.163.com, port: 465【2022年01月10日】

    Azkaban配置文件修改465端口一直报错,如下: javax.mail.MessagingException: Could not connect to SMTP host: smtp.163.c ...

  8. Java发送QQ邮件问题Could not connect to SMTP host: smtp.qq.com, port: 465(内附完整代码)

    邮件发送失败,本地测试可以,部署到服务器就不行. 之前就碰到这个问题,解决办法就是把port端口改成587,然后注释这一段 MailSSLSocketFactory sf = new MailSSLS ...

  9. Could not connect to SMTP host: smtp.***.com, port: 465, response: -1

    引言 在前面博客中写了关于java发送邮件的博客,但是当项目部署到linux 服务器上的时候,发送遇到了错误,如下: Could not connect to SMTP host: smtp.***. ...

最新文章

  1. AI论文引用排行榜丨微软第一,清华第九;Alphabet董事长看AI:美国仅领先5年,大陆追赶速度快;
  2. vb.net怎么调用fastreport报表_零编码制作报表可能吗?
  3. 是什么职位_为什么说,质量工程师岗位变成了 “寡妇职位”?
  4. express中connect-flash中间件的使用
  5. 一款App基于mPaaS小程序如何进行改造?
  6. 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器的示例系统级设计(第一章:文件目录AHB组件开发平台)
  7. alin39048错误原因_支付宝支付ALIN10146错误
  8. Yarn resourceManager 无法启动
  9. devcloud 基础架构
  10. java 测试网络_java Ping操作(测试网络)
  11. 太阳直射点纬度计算公式_高中地理——每日讲1题(太阳直射点、太阳高度角、太阳视运动)...
  12. win7管理员取得所有权
  13. David P.Williams论文系列 SAS图像分辨率与目标检测性能的关系
  14. Netty网络框架学习笔记-16(心跳(heartbeat)服务源码分析)
  15. Gradle子模块之间的依赖
  16. html网页主题有哪些,网站的专题页面是什么?
  17. 我,一个996的普通程序员,如何在2年内买车买房,走向人生巅峰?
  18. MySQL数据库的简单使用(基础篇)
  19. 众人见打死了白秀英 水浒传
  20. i5 9300h和i7 7700hq哪个好

热门文章

  1. 厌倦 Meta 内斗与低效,​传奇大神卡马克愤然离职
  2. 计蒜客 - T1651 道路重建( floyd最短路)
  3. poi 双表头excel制作
  4. 2018, say goodbye!
  5. CAReplicatorLayer 学习和实践
  6. 小度在家推出密语功能,个性化定制让AI更懂你
  7. OpenCV学习日记1
  8. 微信小程序案例TODO备忘录
  9. windows11第一个更新包 10月累积更新 适合基于 x64 的系统 (KB5006674)
  10. AR智能眼镜是怎么样改变工业和工作现状的