Why do i get this exception?

偶尔善良 提交于 2019-12-24 05:21:23

问题


This method gives the number of emails in the inbox.But it gives me this exception :

javax.mail.MessagingException: Connect failed;
 nested exception is:
java.net.ConnectException: Connection timed out: connecterror

-

 Session session = Session.getInstance(new Properties());
    try {
        Store store  = session.getStore("pop3");
        store.connect("pop.gmail.com" , "username" , "password");
        Folder fldr = store.getFolder("INBOX");
        fldr.open(Folder.READ_WRITE);
        int count = fldr.getMessageCount();
        System.out.println(count);
    } catch(Exception exc) {
        System.out.println(exc + "error");
    }    

回答1:


Try this :

Properties props = new Properties();
props.put("mail.pop3.host" , "pop.gmail.com");
props.put("mail.pop3.user" , "username");
// Start SSL connection
props.put("mail.pop3.socketFactory" , 995 );
props.put("mail.pop3.socketFactory.class" , "javax.net.ssl.SSLSocketFactory" );
props.put("mail.pop3.port" , 995);

Session session = Session.getDefaultInstance(props , new Authenticator() {
    @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication( "username" , "password");
            }
});
try {
    Store store  = session.getStore("pop3");
    store.connect("pop.gmail.com" , "username" , "password");
    Folder fldr = store.getFolder("INBOX");
    fldr.open(Folder.HOLDS_MESSAGES);
    int count = fldr.getMessageCount();
    System.out.println(count);
} catch(Exception exc) {
    System.out.println(exc + " error");
}

Also visit this question




回答2:


Probably because the server refuses to connect.

Try connecting from "telnet". Once you can connect at all, then you should be able to connect from your Java program.

Here are some troubleshooting tips:

  • http://www.anta.net/misc/telnet-troubleshooting/pop.shtml

  • https://www-304.ibm.com/support/docview.wss?uid=swg21097014

  • http://support.microsoft.com/kb/885685




回答3:


Try changing

store.connect("pop.gmail.com" , "username" , "password");

to

store.connect("pop.gmail.com" , 995, "username" , "password");

Disclaimer: I have not tested this.

Gmail requires a secure SSL connection, and maybe javax.mail.Service isn't providing that. I think the more likely explanation, though, is that you're simply not connecting to the right port, so I've explicitly specified the correct port number for Gmail's POP3 service.




回答4:


Try following a "how to use gmail as an smtp server" tutorial. Google also has a configuration page with all the settings you'll need.



来源:https://stackoverflow.com/questions/6802208/why-do-i-get-this-exception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!