我正在使用JavaMail向SMTP服务器发送电子邮件请求。我将“mail.smtp.connectiontimeout”和“mail.smtp.timeout”属性分别设置为5秒和30秒,并将这两个属性传递给Session.getDefaultInstance()。但是,当我去运行Transport.send()时,我设置的超时似乎被忽略,并且它在Solaris机器上以3:45左右超时。 Mac上的超时大约需要1:30。这是JavaMail中的错误还是我需要设置其他一些属性?
答案 0 :(得分:1)
我认为超时设置是特定于Sun JVM的 - 因此它可能无法在mac上完全相同。
过去我遇到过这个问题 - 最终消耗了网络线程。我做的是添加一个小JMS,所以Web层代码将调度电子邮件请求 - 并有一个消息监听器(这是它自己的线程)监听并执行电子邮件 - 在偶尔的情况下,它确实卡住它没有' t影响应用程序的其余部分(只是电子邮件花了一点时间)。没有真正解决根本问题,但我最终得到了更好的设计。