Java 为什么我会得到这个例外?

Java 为什么我会得到这个例外?,java,jakarta-mail,pop3,gmail-pop,Java,Jakarta Mail,Pop3,Gmail Pop,此方法给出收件箱中的电子邮件数。但它给了我以下例外情况: javax.mail.MessagingException: Connect failed; nested exception is: java.net.ConnectException: Connection timed out: connecterror - 可能是因为服务器拒绝连接 尝试从“telnet”连接。一旦您能够连接,那么您应该能够从Java程序进行连接 以下是一些疑难解答提示: 尝试更改 store.conne

此方法给出收件箱中的电子邮件数。但它给了我以下例外情况:

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


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

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

以下是一些疑难解答提示:

尝试更改

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

免责声明:我没有测试过这个

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

请尝试以下“如何将Gmail用作smtp服务器”。谷歌还提供了一个包含您需要的所有设置的应用程序。

试试这个:

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

同时访问

gmail的pop3服务通过tls/ssl(端口995)提供不是标准的110普通tcp你可能想检查@ratchet freak,那么我应该在我的代码中添加什么呢?检查它与gmail的连接,特别是它设置了一些设置,并使用
URLName
来指定它是否只发生在生产环境中,或者甚至在没有防火墙的机器上?@grassPro你可以使用Suhail Gupta解决它;我可能错了,但我不相信Gmail会接受远程登录connection@gravity是的;支持页面告诉您执行telnet测试以检查阻塞的995 tcp端口这是随后报告的异常:
javax.mail.AuthenticationFailedException:EOF on socketerror
您好,我正在获取javax.mail.AuthenticationFailedException:EOF onsocket@RakshitSoni表明您使用的用户名和密码不正确。如果在谷歌上使用双重身份验证,它可能会失败。您必须向google注册您的应用程序(如果您使用双重身份验证)
store.connect("pop.gmail.com" , 995, "username" , "password");
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");
}