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

ops/2024/12/21 7:59:55/

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

  • 1、背景
  • 2、解决


1、背景

记录一次非常奇怪的问题。
项目中有一个定时发送邮件的功能;在一个风和丽日的早上,业务咔咔一顿消息,邮件怎么不发了。
额、、、
更奇怪的是,部分能发送,部分不能发送。

java">Could not connect to SMTP host: smtp.163.com, port: 465, response: -1

2、解决

服务器一顿排查,均无异常。

  • 1、CPU,经排查发邮件当时CPU并不高,且系统没有宕机。
  • 2、内存,经排查,内存占用也属于正常值。
  • 3、磁盘,磁盘容量。
  • 4、发布,近一个月并无发布情况。

既然不是服务器相关的问题,那就从代码本身查找问题。


  • 1、SSL/TLS协议问题:

可能是因为您使用的Java环境中禁用了某些SSL/TLS协议版本。在Java高版本中,默认禁用了SSLv3, TLSv1, TLSv1.1等协议。您需要在代码中指定使用的TLS版本。例如:

java">prop.put("mail.smtp.ssl.protocols", "TLSv1.2");

请确保您的Java环境支持您指定的TLS版本,并且没有禁用它。


  • 2、端口和加密设置:

确保您的代码中正确设置了使用SSL加密的端口和相应的Socket工厂。例如:

java">prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.put("mail.smtp.ssl.enable", true);

同时,确保您使用的端口是465,这是SMTPS(SMTP over SSL)的标准端口。


  • 3、Java环境配置:

如果您在阿里云等云服务上部署应用,可能需要检查云服务的安全组设置,确保465端口没有被阻止。


  • 4、邮件协议配置:

在某些情况下,如果您使用的是端口465,应该在配置中使用SMTPS协议而不是SMTP。例如,在Spring Boot的配置文件中,应该设置:

java">spring.mail.protocol=smtps

这将确保您的应用使用正确的协议与SMTP服务器通信。


  • 5、环境问题:

如果您最近升级了JDK版本,可能需要检查JAVA_HOME/jre/lib/security/java.security文件中的配置,确保没有禁用您需要使用的TLS版本。


好吧,以上都是AI搜集了37个网页整理回答的,还挺不错的。

以下是对应截图。
在这里插入图片描述

这个就不是AI回答的咯

  • 6、附件

因为并非全部不能发送,部分能成功,部分不能成功,所以考虑是否是附件过大导致的问题。但后续手动触发邮件的发送的时候,发现大附件也能正常发送,故排除此情况。

  • 7、检查端口

邮件采用默认端口 465(加密),和25(非加密),如果是在阿里云等云平台部署,需要检查一下近期是否有安全策略的调整。比如对25端口的禁用。可以根据端口开放情况设置对应的端口。

  • END:解决问题
    排查发现代码并没有设置协议,增加如下配置:
java">Properties properties = new Properties();
properties.put("mail.smtp.ssl.enable", true);
properties.put("mail.smtp.ssl.protocols", "TLSv1.2");

问题解决。


OK,就这些吧。
有什么不对的还望指正,书写不易,觉得有帮助就点个赞吧!☺☺☺

参考链接:https://www.cnblogs.com/luoxiao1104/p/16672860.html
https://blog.csdn.net/cry1049208942/article/details/97183552


http://www.ppmy.cn/ops/143705.html

相关文章

Arcgis for javascript 开发学习经验

初始化viewer: 提示:这里简述项目相关背景: const mapBaseLayer new WebTileLayer({urlTemplate: SystemConfig.dydImgUrl,visible: true,id: DYDImage,});//地图初始化mapconst map new Map({basemap: satellite,ground: world-elevatio…

华为HCIP认证培训多少天?

华为 HCIP 认证,对于那些已经有一定网络技能和经验的人来说,这可是个很权威的认证! 它不单单是对个人网络技能和知识的肯定,更是让职业竞争力增强的重要一步呢。要是想顺顺利利拿到这个认证,除了要找一家靠得住又专业…

【数据分析】数据分析流程优化:从数据采集到可视化的全面指南

目录 引言一、数据采集:高质量数据的起点1.1 数据采集的目标1.2 数据采集的常用方法1.3 数据采集的注意事项 二、数据清洗:确保数据质量2.1 数据清洗的重要性2.2 常见的数据清洗步骤 三、数据分析:从数据中挖掘有价值的洞察3.1 数据分析的目的…

.Net Core注册一个定制任务执行类服务

如果我们想要在Web Api服务中创建一个定制任务后台一直刷新执行某些操作&#xff0c;那么我们可以继承abstract抽象类HostedService&#xff0c;具体操作如下&#xff1a; BackgroundService.cs源代码&#xff0c;这个源代码我可以自己写一个也可以直接继承。 /// <summar…

缓存与数据库双写不一致问题的深度剖析与解决方案

在分布式系统中&#xff0c;缓存与数据库双写不一致问题是一个常见且棘手的问题。当我们同时对缓存和数据库进行写入操作时&#xff0c;由于操作的顺序、时间差异、网络延迟等多种因素&#xff0c;可能导致缓存中的数据与数据库中的数据不一致。这种不一致性不仅会影响数据的准…

浅谈单例模式

1.什么是单例模式 单例模式是设计模式的一种&#xff0c;那什么是设计模式呢&#xff1f; 欸问得好&#xff0c;设计模式就是对常见的业务场景总结出来的处理方法&#xff0c;相当于一种“套路”&#xff0c;类似于打王者时候&#xff0c;跟这个英雄对线用连招213比较好&#…

开启数字化时代心理服务新篇章:专属线上心理咨询服务小程序

在当今快节奏的社会中&#xff0c;心理健康问题日益受到人们的关注。然而&#xff0c;传统的心理咨询模式往往受限于时间和地点&#xff0c;使得许多人在寻求心理帮助时感到不便。与此同时&#xff0c;心理课程的传播也面临着诸多挑战&#xff0c;如何高效地触达目标客户群体&a…

RTA_OS内核源码解析 3.9-任务激活

RTA_OS内核源码解析 3.9-任务激活 文章目录 RTA_OS内核源码解析 3.9-任务激活一、激活简介二、同步激活2.1 中断管理2.2 异常条件判断2.3 激活Task2.4 任务调度2.4.1 Os_RaiseCrossCoreISR2.4.2 Os_CrossCoreISR三、异步激活3.1 异常条件判断3.2 激活Task一、激活简介 一般将T…