大家好,我是 程序员码递夫

在这里插入图片描述

问题

最近一段时间,原来运行正常等java项目, 向腾讯邮件服务器发送邮件,提示错误: javax.mail.AuthenticationFailedException: 530 Login fail. A secure connection is requiered(such as ssl). More information at https://help.mail.qq.com/detail/0/1010
在这里插入图片描述

分析

原因是 腾讯邮件服务器因为安全考虑,从2024年11月20日起,开启了 SSL/TLS 加密功能。
在这里插入图片描述

解决方法

在代码中加入 开启 加密的设置。

原代码

				Properties props = System.getProperties();

				// 设置SMTP服务器地址
				props.put("mail.smtp.host", host);
				// 设置服务器验证
				props.put("mail.smtp.auth", "true");
				// 设置传输协议
				props.put("mail.transport.protocol", "smtp");
		        
				MailAuthenticator auth = new MailAuthenticator(user, password);

修改后的代码

				Properties props = System.getProperties();

				// 设置SMTP服务器地址
				props.put("mail.smtp.host", host);
				// 设置服务器验证
				props.put("mail.smtp.auth", "true");
				// 设置传输协议
				props.put("mail.transport.protocol", "smtp");

		        props.put("mail.smtp.socketFactory.port", "465"); // SSL端口号通常为465
		        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); // 使用SSL套接字工厂
		        
				MailAuthenticator auth = new MailAuthenticator(user, password);

问题解决。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐