java Apache Commons Net POP3与Gmail的连接
我正在使用Apache Commons Net的POP3支持从我的Gmail收件箱中检索电子邮件。我使用以下代码打开与Gmail的POP3服务器的连接:
String server = "pop.gmail.com";
String username = "<my gmail>";
String password = "<my password>";
POP3Client pop3 = new POP3Client();
pop3.setDefaultTimeout(15000);
pop3.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out), true));
System.out.println("Connecting...");
try {
pop3.connect(server, 995);
} catch (IOException e) {
e.printStackTrace();
System.exit(1);
}
但这会导致以下错误:
java.io.EOFException: Connection closed without indication.
at org.apache.commons.net.pop3.POP3.__getReply(POP3.java:117)
at org.apache.commons.net.pop3.POP3._connectAction_(POP3.java:153)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:189)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:209)
at com.sms.POP3Mail.main(POP3Mail.java:66)
为什么会发生这种情况,我该如何解决
# 1 楼答案
您需要在Constructor中设置隐式标志以连接Gmail并使用POP3SClient:
# 2 楼答案
我发现了问题。谷歌在使用POP3时需要SSL。我添加了SSL身份验证,现在一切都好了