解决:java项目向腾讯邮件服务器发送邮件,提示错误:javax.mail.AuthenticationFailedException: 530 Login fail
java项目, 向腾讯邮件服务器发送邮件,提示错误: javax.mail.AuthenticationFailedException: 530 Login fail
·
大家好,我是 程序员码递夫。

问题
最近一段时间,原来运行正常等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);
问题解决。
更多推荐
所有评论(0)