smtp 通过465端口发送邮件失败
迪丽瓦拉
2025-05-31 00:02:00
0
问题现象:
1、smtp请求邮件服务器发送邮件,配置了邮件服务器地址和465端口
2、抓包发现在建TCP3次握手动作之后,客户端请求连接达到30s,然后主动中断连接,详见下图3、java代码中报错如下:分析过程:
1、怀疑网络问题
通过使用curl命令检查,发现客户端和邮件服务器网络通畅,不存在网络问题,详见smtp报文分析(25、465、587端口)_Steven-Russell的博客-CSDN博客2、发现客户端主动中断连接,并且达到30s之后中断,那么极有可能时触发了客户端的smtp超时,检查smtp配置 mail.smtp.timeout = 30000,恰好佐证了想法3、通过添加 smtp 的debug配置,mail.debug=true ,打印出debug日志 
4、排查日志,发现isSSL=false5、反观465端口时smtp的ssl交互端口,那么和isSSL=false不就矛盾了吗?
6、检查代码,配置 mail.smtp.ssl.enable 改为true,重新运行程序,发现邮件发送成功。综上可知,问题根因:
1、465是smtp的ssl安全端口,所以使用javamail时必须有如下配置:
properties.put("mail.smtp.ssl.enable", "true"); // 默认值为false
2、一定要仔细排查前述配置是否因为代码分支不同,导致设置为false,或者默认值为false

 

 

注意:此处因为服务器配置smtps端口是465,方才有上述结论,若是手动配置了其他端口作smtps的安全端口,同理需要 properties.put("mail.smtp.ssl.enable", "true");

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...