繁体   English   中英

Java 邮件未连接异常,但 email 发送出去

[英]Java Mail Not connected exception, but email sent out

我遇到的问题是 JAVA 邮件(JavaMail 版本 1.5.3)在发送 email 消息时抛出未连接异常,并且 email 确实被发送出去。 自 4 周前以来,我一直在遇到这种情况。 该问题似乎主要与托管交换服务器有关。 例外情况如下:

java.lang.IllegalStateException: Not connected com.sun.mail.smtp.SMTPTransport.checkConnected(SMTPTransport.java:2355) com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1151) com.email.sender. EmailSenderThread.sendEmailMessages(EmailSenderThread.java:127) com.email.sender.EmailSenderThread.threadProcess(EmailSenderThread.java:59) com.email.util.PhaseThread.run(PhaseThread.java:40) java.util.concurrent.Executors$ RunnableAdapter.call(Executors.Z93F725A07423FE1C889F448B33D2 1F46Z:511) java.util.concurrent.FutureTask.run(FutureTask.java:266) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor. java:617) java.lang.Thread.run(Thread.java:748)

我正在努力获取异常的调试日志,但我只是想知道如何防止这种情况以及是否有更新推出到 Exchange,因为代码多年来一直运行良好。

提前致谢 !!!

如果要“合并”传输对象以便可以重用,则服务器可能由于不活动而断开了连接。

至于为什么即使在收到此异常后仍仍发送消息的原因,您的应用程序必须在获得异常后做一些重新连接的操作。

因为我忘了检查这个,所以我确实得到了同样的例外。 添加检查后一切正常:

if (!mailSession.getTransport().isConnected()) {
 //...reconnection code
 Transport newTransport = mailSession.getMailSession().getTransport();
 newTransport.connect(...);
 mailSession.setTransport(newTransport);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM