gpt4 book ai didi

java - 为什么 JavaMail 连接超时时间过长

转载 作者:太空狗 更新时间:2023-10-29 22:37:17 24 4
gpt4 key购买 nike

在我的应用程序中,我连接到服务器以验证用户身份。这是代码:

try {
Properties prop = new Properties();
prop.put("mail.smtp.starttls.enable","true");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.connectiontimeout", 1000);


Session session = Session.getInstance(prop, null);
Transport transport = session.getTransport("smtp");
transport.connect("mion.elka.pw.edu.pl", 587, registerLog, registerPass);
transport.close();
return true;
} catch (NoSuchProviderException ex) {
Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, null, ex);
return false;
} catch(AuthenticationFailedException ex) {
Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, null, ex);
return false;
} catch (MessagingException ex) {
Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE, null, ex);
return false;
}

我将连接超时设置为 1000 毫秒 = 1 秒,但它被忽略了。当我调试并设置错误的用户名和密码时,我会捕获

javax.mail.MessagingException: java.net.SocketTimeoutException: Read timed out

不是在 1000 毫秒之后,而是在 5000*60 毫秒 = 5 分钟之后

怎么了?我怎样才能减少超时?

最佳答案

你也可以设置 Socket I/O 超时吗?当它连接成功但无法从服务器读取数据时,它会继续等待。

prop.put("mail.smtp.timeout", 1000);

读取超时表示您已连接但无法从服务器读取数据。

关于java - 为什么 JavaMail 连接超时时间过长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18970409/

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