我在java中尝试非常简单的Email Client。 当我启动程序时,我有一条错误消息:
Exception in thread "main" javax.mail.AuthenticationFailedException: EOF on socket
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:146)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at SimpleEmailClient2.main(SimpleEmailClient2.java:21)
Java Result: 1
为什么呢? 我使用Gmail帐户,并设置了POP和IMAP 我的代码中可能出现的错误是什么? 谢谢
这是代码:
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
public class SimpleEmailClient2 {
public static void main(String[] args) throws Exception {
Properties props = new Properties();
String host = "pop.gmail.com";
String provider = "pop3";
Session session = Session.getDefaultInstance(props, new MailAuthenticator());
Store store = session.getStore(provider);
store.connect(host, null, null);
Folder inbox = store.getFolder("INBOX");
if (inbox == null) {
System.out.println("No INBOX");
System.exit(1);
}
inbox.open(Folder.READ_ONLY);
Message[] messages = inbox.getMessages();
for (int i = 0; i < messages.length; i++) {
System.out.println("Message " + (i + 1));
messages[i].writeTo(System.out);
}
inbox.close(false);
store.close();
}
}
class MailAuthenticator extends Authenticator {
public MailAuthenticator() {
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("email@gmail.com", "password");
}
}
答案 0 :(得分:2)
我不相信gmail支持pop3提供程序;你必须使用pop3s。否则这应该可以正常工作。
答案 1 :(得分:1)
Oracle提供了有关将javamail连接到gmail here的信息。
具体来说,在尝试建立连接时,您似乎失败了,可能是因为您没有指定要连接的用户名/密码。尝试使用以下内容进行连接:
store.connect(host, "user618111@gmail.com", "[myPassword]");