Properties props = new Properties();
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", SMTPHost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
Authenticator Auth= new MailAuthenticator();
Session session = Session.getInstance(props, Auth);
MimeMessage msg = new MimeMessage(session);
//
//
Transport.send(msg);
邮件大部分时间都成功发送,但有时却没有发送和tomcat显示
javax.mail.MessagingException: Could not connect to SMTP host: "SMTPHost - IP " , port: 587;
嵌套异常是: java.net.ConnectException:连接超时:connect
此消息每隔几个小时就出现在Tomcat日志中。
javax.mail.MessagingException:异常读取响应; 嵌套异常是: java.net.SocketException:连接重置
This message also appears rarely in a day.
任何帮助真的很感激。感谢。
答案 0 :(得分:0)
尝试增加获取连接的超时时间。可能在加载期间,应用程序无法在指定时间内获得连接,并抛出异常。
答案 1 :(得分:0)
java mail API中有两种方法可用Transport.send()和Transport.sendMessage()。 您可以阅读Difference between Transport methods send and sendMessage
尝试创建自己的传输对象,并使用sendMessage()发送多条消息。
使用Transport.send()可能是自动java邮件花费更多时间的原因。
如果不是这种情况,则问题出在网络上。