Why is the JavaMail connection timeout too long

In my application, I connect to the server to authenticate users This is the code:

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,ex);
        return false;
    } catch (MessagingException ex) {
        Logger.getLogger(RegisterController.class.getName()).log(Level.SEVERE,ex);
        return false;
    }

I set the connection timeout to 1000 ms = 1s, but ignored it When I debug and set the wrong user name and password, I catch it

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

Not after 1000 ms, but after 5000 * 60 ms = 5 minutes

What's wrong? How can I reduce my time?

Solution

You can also set socket I / O timeout When it connects but fails to read data from the server, it will continue to wait

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

A read timeout indicates that you are connected but cannot read data from the server

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>