gpt4 book ai didi

java - 如何正确设置 JavaMail 超时设置

转载 作者:行者123 更新时间:2023-11-30 09:51:36 27 4
gpt4 key购买 nike

我正在使用 JavaMail 连接到 POP3 服务器。

此外,我设置了以下属性,这样即使电子邮件服务器没有响应,JavaMail 也不会等待太久:

props.setProperty("mail.pop3.connectionpooltimeout", "3000");
props.setProperty("mail.pop3.connectiontimeout", "3000");
props.setProperty("mail.pop3.timeout", "3000");

但是,在某些情况下,超时工作正常,但有时 JavaMail 会卡住几分钟(!),并显示以下调试消息:

DEBUG POP3: connecting to host "pop3.yahoo.com", port 110, isSSL false

更改端口或协议(protocol)(SSL、TLS..)无效。我假设主机根本不存在。

例如,如果我轮询 pop3.yahoo.com 而不是 pop.mail.yahoo.com(这将是正确的主机名),我必须等待很长时间才能出现超时异常发生。几分钟后,我收到以下异常,应用程序继续运行:

java.net.ConnectException: Operation timed out

pop3.yahoo.com 似乎存在但不会响应:

localhost:~ me$ ping pop3.yahoo.com
PING pop3.yahoo.com (206.190.46.10): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
^C

您可能会问为什么我使用 pop3.yahoo.com 而不是 pop.mail.yahoo.com。好吧,我只是想测试如果我的应用程序的用户插入错误的主机名会发生什么情况。

我相信这个问题与这份报告有关http://www.opensubscriber.com/message/javamail-interest@java.sun.com/180946.html张贴者声称如果电子邮件服务器关闭连接就会出现问题。然后 JavaMail 似乎等待了很长时间(不知道为什么)。

由于我发布的链接中的问题没有得到解决:有人知道如何修复或至少调试它吗?

如有任何帮助,将不胜感激!

最佳答案

我找到了问题的原因。这是我的代码中的一个错误。 Javamail 遵守超时设置。

关于java - 如何正确设置 JavaMail 超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4620102/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com