Javamail和Gmail Pop3 SSL
我正在尝试将我的应用程序连接到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
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常见问题解答以获取完整的示例。请编辑您的答案,我们仍然可以看到
在此处输入代码
。还要解释为什么这会有帮助,代码转储答案被认为是不够的。