1

我正在使用 JavaMail 向 SMTP 服务器发送电子邮件请求。我将“mail.smtp.connectiontimeout”和“mail.smtp.timeout”属性分别设置为 5 秒和 30 秒,并将这两个属性都传递给 Session.getDefaultInstance()。但是,当我执行 Transport.send() 时,我设置的超时似乎被忽略了,在 Solaris 机器上超时大约需要 3:45。在 Mac 上超时时间约为 1:30。这是 JavaMail 中的错误还是我需要设置一些其他属性?

4

1 回答 1

1

我认为超时设置是特定于 Sun JVM - 所以它可能无法在 mac 上完全相同。

我过去曾遇到过这个问题 - 最终消耗了网络线程。我所做的是添加一个小 JMS,这样 Web 层代码就会发送电子邮件请求 - 并有一个消息监听器(它是它自己的线程)监听并发送电子邮件 - 在偶尔遇到卡住的情况下它没有t 影响应用程序的其余部分(只是电子邮件花费了一小段时间)。并没有真正解决根本问题,但我最终得到了更好的设计。

于 2008-12-15T05:27:58.997 回答