java - 通过 Java Mail API 发送邮件时连接超时异常

标签 java email tomcat jakarta-mail

<分区>

        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:连接超时:连接

此消息每隔几个小时就会出现在 Tomcat 日志中。

javax.mail.MessagingException:读取响应异常; 嵌套异常是: java.net.SocketException: 连接重置

    This message also appears rarely in a day.

非常感谢任何帮助。谢谢。

最佳答案

java 邮件 API 中有 2 个方法 Transport.send() 和 Transport.sendMessage() 可用。 你可以阅读Difference between Transport methods send and sendMessage

尝试创建您自己的传输对象并使用 sendMessage() 发送多条消息。

使用 Transport.send() 可能是自动 java 邮件花费更多时间的原因。

如果不是上述情况,则网络有问题。

关于java - 通过 Java Mail API 发送邮件时连接超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25307340/

相关文章:

html - Outlook - 转发/回复删除显示 :none inline-style

ruby-on-rails - 如何解决 'already initialised constant' cmd 上的 BigDecimal 'mailcatcher' 警告?

tomcat - 在 tomcat 7 中的 webapps 文件夹外部署 Web 应用程序

java - 如何使用 Exception.printStackTrace(); 包含时间?

java - Jasper在Java中使用jsonql数据源填充报告

ios - MFMailComposeViewController 不会关闭

jsp - 如何在服务器发送响应之前使用 servlet 过滤器拦截页面请求,将 jsessionid 附加到响应 URL

jsp - 从 jsp <href> 链接调用 Servlet 无效

java - 我如何在 Java 中将 String 读入 inputStream?

java - 如何查询solr java客户端的子句?