java发送邮件报错,Could not connect to SMTP host: smtp.exmail.qq.com, port: 465
发现问题
我使用的 docker 运行的 jdk 环境,服务调用发送邮件报错
javax.mail.MessagingException: Could not connect to SMTP host: smtp.exmail.qq.com, port: 465;nested exception is:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)at javax.mail.Service.connect(Service.java:317)at javax.mail.Service.connect(Service.java:176)at javax.mail.Service.connect(Service.java:125)at javax.mail.Transport.send0(Transport.java:194)at javax.mail.Transport.send(Transport.java:124)at com.nlelpct.common.network.utils.XMailUtil.run(XMailUtil.java:204)at com.nlelpct.common.network.controller.MailboxController.sendMailByCurrent(MailboxController.java:437)at sun.reflect.GeneratedMethodAccessor77.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171)at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:103)at sun.security.ssl.TransportContext.kickstart(TransportContext.java:220)at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:433)at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354)at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
解决方案
由于是java 版本的问题,其中jdk.tls.disabledAlgorithms指定了被禁用的算法和协议版本。
打开 java 目录
# 查找容器内 java 目录
which java
修改java.security文件:删除掉SSL3,TLSv1, TLSv1.1
sed -i 's/SSLv3, TLSv1, TLSv1.1, //g' /usr/local/openjdk-8/jre/lib/security/java.security
相关文章:
java发送邮件报错,Could not connect to SMTP host: smtp.exmail.qq.com, port: 465
发现问题 我使用的 docker 运行的 jdk 环境,服务调用发送邮件报错 javax.mail.MessagingException: Could not connect to SMTP host: smtp.exmail.qq.com, port: 465;nested exception is:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protoc…...
开放式耳机有哪些好处?性价比排行前十的四款蓝牙耳机推荐
开放式耳机有以下好处: 佩戴舒适:开放式耳机不入耳,不堵塞耳道,长时间佩戴耳朵不易感到闷热和疼痛,相比传统入耳式耳机,能减少对耳道的压迫感和摩擦,让耳朵更舒适。 更健康卫生:不入…...
FreeRTOS(速记版)
第一章 初识 FreeRTOS 1.1 FreeRTOS简介 FreeRTOS 采用了 MIT 开源许可,这允许将 FreeRTOS 操作系统用于商业应用,并且不需要公开源代码。此外,FreeRTOS 还衍生出了另外两个操作系统:OpenRTOS 和 SafeRTOS,其中 OpenR…...
解锁中东市场新蓝海:Bigo社交媒体如何赋能APP广告营销优势
解锁中东市场新蓝海:Bigo社交媒体如何赋能APP广告营销优势 在全球数字化浪潮的推动下,中东地区以其独特的文化背景、高速的经济增长以及庞大的年轻消费群体,成为了众多品牌与APP开发者竞相争夺的市场高地。作为该地区颇具影响力的社交媒体平…...
【网络】DNS
definition DNS(Domain Name System,域名系统)服务器是互联网上的重要基础设施之一,它的主要作用是将人们易于记忆的域名(如www.example.com)转换成计算机可以直接识别的IP地址(如192.0.2.1&am…...
如何使用ChatGPT,完成学术论文文献综述的编写?
学境思源,一键生成论文初稿: AcademicIdeas - 学境思源AI论文写作 在学术研究中,文献综述是了解研究现状、辨识研究空白并为自己的研究奠定理论基础的关键环节。ChatGPT 可以在文献综述的编写过程中提供有效的支持,从文献搜集、批…...
探索GPU算力在大模型和高性能计算中的无限潜能
在当今科技领域,大模型和高性能计算正以惊人的速度发展。大模型如语言模型、图像识别模型等,规模越来越大,精度越来越高,能够处理复杂的任务和生成逼真的结果。高性能计算则凭借强大的计算能力,推动着科学研究、工程设…...
【信创】统信UOS图形界面登录闪退的解决方法
原文链接:【信创】统信UOS图形界面登录闪退的解决方法 Hello,大家好啊!今天给大家带来一篇关于统信UOS 1070桌面操作系统中,图形界面登录时出现闪退或输入正确的用户名和密码后又跳转回登录界面问题的解决方法的文章。这种问题可能…...
排序(插入,希尔,选择,堆,冒泡,快速,归并,计数)
本文中的Swap()函数都是下面这段代码 // 交换 void Swap(int* p1, int* p2) {int tmp *p1;*p1 *p2;*p2 tmp; }文章目录 常见排序:一.插入排序1.直接插入排序:2.希尔排序: 二.选择排序1.选择排序:2.堆排序: 三.交换排…...
【recast-navigation/源码解析】findStraightPath详解以及寻路结果贴边优化
说在前面 recast-navigation版本:1.6.0 叉积cross product 正常来讲,叉乘为: ∣ A ⃗ B ⃗ ∣ ∣ x A y A x B y B ∣ x A ⋅ y B − x B ⋅ y A |\vec{A} \times \vec{B}|\begin{vmatrix} x_A & y_A \\ x_B & y_B \end{vmatrix…...
移动管家手机智能控制汽车系统
手机可以通过下载特定的应用程序来控制汽车系统,实现远程启动、锁/解锁车门、调节车内温度等功能。 手机智能控制汽车系统主要通过下载并安装特定的APP来实现。 首先,用户需要确定自己的手机系统是安卓还是苹果版,然后前往应用…...
828华为云征文|华为云Flexus X实例Redis性能加速评测及对比
目录 前言 一、华为云Flexus X加速Redis购买 1.1 Flexus X实例购买 1.2 Redis加速镜像选择 1.3 重置密码 1.4 登录Flexus X实例 1.5 Flexus X实例Redis验证 二、Redis测评工具介绍 三、华为云Flexus X实例加速Redis测评 3.1 string类型 3.2 hash类型 3.3 list类型 3.4 set类型 …...
【OpenCV3】图像的翻转、图像的旋转、仿射变换之图像平移、仿射变换之获取变换矩阵、透视变换
1 图像的放大与缩小 2 图像的翻转 3 图像的旋转 4 仿射变换之图像平移 5 仿射变换之获取变换矩阵 6 透视变换 1 图像的放大与缩小 resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) src: 要缩放的图片dsize: 缩放之后的图片大小, 元组和列表表示均可.dst: 可选参数, 缩…...
不要认为996是开玩笑
996 预防针 随着秋招进程的不断推进,有部分同学已经 OC,有部分同学还在苦苦挣扎,并不断降低自己的预期,包括在和 HR 沟通过程中,主动说出自己愿意接受加班,愿意接受 996,以此来博得企业方面的加…...
精益工程师资格证书:2024年CLMP报名指南
随着全球对精益管理的需求日益增长,精益管理专业人士资格认证(CLMP)正成为越来越多精益工程师和精益管理人员提升职业竞争力的首选。作为一种注重管理而非生产的认证,CLMP不仅适用于制造业的专业人士,也吸引了各行业的…...
【Unity基础】如何选择脚本编译方式Mono和IL2CPP?
Edit -> Project Settings -> Player 在 Unity 中,Scripting Backend 决定了项目的脚本编译方式,即如何将 C# 代码转换为可执行代码。Unity 提供了两种主要的 Scripting Backend 选项:Mono 和 IL2CPP。它们之间的区别影响了项目的性能、…...
写在OceanBase开源三周年
我收获的深刻感触get 感触1:解决问题才有生存价值 [产品力] 感触2:永无止境的“易用性” [易用性] 感触3:立下“双赢”的flag 感触4:社区建设离不开用户和开发者参与 感触5:从易用到用户自助 [自助能力] 当时想法很简…...
【笔记】408刷题笔记
文章目录 三对角三叉树求最小带权路径UDP报文首部和TCP报文首部IP报文首部TCP报文首部UDP报文首部 刷新和再生的区别地址译码 为了区分队空队满,可以使用三种处理方式 1)牺牲一个单元 队头指针在队尾指针的下一位置作为队满的标志 队满条件:(…...
GitHub Star 数量前 13 的自托管项目清单
一个多月前,我们撰写并发布了这篇文章《终极自托管解决方案指南》。在那篇文章里我们深入探讨了云端服务与自托管方案的对比、自托管的潜在挑战、如何选择适合自托管解决方案,并深入介绍了五款涵盖不同场景的优秀自托管产品。 关于自托管的优势…...
js实现生成随机数值的数组
生成随机数值的数组 方法一:使用while循环和Set // min 开始数值, max 结束数值, count 数组内填充几个数值 function generateUniqueRandomNumbers(min, max, count) { let result new Set(); while (result.size < count) { let n…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...
