2

此方法给出了收件箱中的电子邮件数量。但它给了我这个例外:

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");
    }    
4

4 回答 4

3

可能是因为服务器拒绝连接。

尝试从“telnet”连接。一旦完全可以连接,那么您应该能够从您的 Java 程序进行连接。

以下是一些故障排除提示:

于 2011-07-23T17:52:21.527 回答
3

试试这个 :

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");
}

也访问这个问题

于 2011-07-24T07:14:38.890 回答
1

尝试改变

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

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

免责声明:我没有对此进行测试。

Gmail 需要安全的 SSL 连接,而 javax.mail.Service 可能没有提供。不过,我认为更可能的解释是您根本没有连接到正确的端口,因此我明确指定了 Gmail 的 POP3 服务的正确端口号。

于 2011-07-23T20:11:51.113 回答
1

尝试遵循“如何使用 gmail 作为 smtp 服务器”教程。Google 还有一个配置页面,其中包含您需要的所有设置。

于 2011-07-23T22:38:44.453 回答