Javamail和Gmail Pop3 SSL

Javamail和Gmail Pop3 SSL,gmail,jakarta-mail,pop3,Gmail,Jakarta Mail,Pop3,我正在尝试将我的应用程序连接到Gmail以查看电子邮件。我必须为POP3使用SSL 这是我的代码: Properties props = new Properties(); props.put("mail.host", "pop.gmail.com"); props.put("mail.store.protocol", "pop3s"); props.put("mail.pop3s.auth", "true"); props.put("mail.pop3

我正在尝试将我的应用程序连接到Gmail以查看电子邮件。我必须为POP3使用SSL

这是我的代码:

    Properties props = new Properties();

    props.put("mail.host", "pop.gmail.com");
    props.put("mail.store.protocol", "pop3s");
    props.put("mail.pop3s.auth", "true");
    props.put("mail.pop3s.port", "993");

    Session session = Session.getDefaultInstance(props, null);
    Store store=session.getStore();
    store.connect("myuser@gmail.com","mypass");
我得到了这个错误:

Exception in thread "main" javax.mail.MessagingException: Connect failed;
  nested exception is:
    java.io.IOException: Unexpected response: * OK Gimap ready for requests from x.x.x.x.x z50if25691877wef.13
    at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:210)
    at javax.mail.Service.connect(Service.java:295)
    at javax.mail.Service.connect(Service.java:176)
    at javax.mail.Service.connect(Service.java:196)

我认为这有一个好的新问题:gmail服务器回答了,但是。。。对于javamail来说,似乎回答得不好。

gmail的端口应该是995:

我想它会对您有所帮助

 Properties properties = new Properties();  
 properties.put("mail.pop3.host", pop3Host);
 properties.put("mail.pop3.ssl.enable", true);
 properties.put("mail.pop3.ssl.trust", "*");
 properties.put("mail.pop3.port", 995);
 Session emailSession = Session.getDefaultInstance(properties); `enter code here`

如果在javax.mail的Protocol.java中找到此项,源代码:If(line.startsWith(“+OK”))r.OK=true;谷歌回答“*OK”…首先,将Session.getDefaultInstance更改为Session.getInstance。然后,我认为,如果您查看会话调试输出,您将看到您实际上正在连接到imap.gmail.com。POP3访问的正确主机名是pop.gmail.com。另外请注意,如果使用默认设置,则不需要设置mail.pop3s.port属性,并且没有mail.pop3s.auth属性,因此无需设置它。查看JavaMail常见问题解答以获取完整的示例。请编辑您的答案,我们仍然可以看到
在此处输入代码
。还要解释为什么这会有帮助,代码转储答案被认为是不够的。