在我们开发过程中发送邮箱时,可能会出现无法到SMTP主机:smtp.xxx.com,端口:25 或者 465;
异常信息如下:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.xxx.com, port: 465, response: -1
如果出现这种异常,需要添加下面信息就可以解决
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.ssl.enable", true);
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
如:
Properties props = new Properties();
props.setProperty("mail.debug", "ture");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.host", "邮箱服务器主机地址");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.port", "465");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.mime.encodefilename", "true");
Session session = Session.getInstance(props);
Multipart mainPart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();
try {
messageBodyPart.setContent("测试","text/html; charset=utf-8");
mainPart.addBodyPart(messageBodyPart);
Message msg = new MimeMessage(session);
msg.setSubject("发送测试");
msg.setFrom(new InternetAddress(sendEmail, "xxx", "UTF-8"));
msg.setContent(mainPart);
SMTPTransport transport = (SMTPTransport) session.getTransport("smtp");
transport.connect("963330213@qq.com", "密码");
InternetAddress[] internetAddressTo = InternetAddress.parse("963330213@qq.com");
transport.sendMessage(msg, internetAddressTo);
}catch (Exception e) {
e.printStackTrace();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构