java - 如何在Java中设置Email客户端?

标签 java email

我正在尝试用java编写非常简单的电子邮件客户端。 当我启动该程序时,我收到一条错误消息:

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

最佳答案

我不相信 gmail 支持 pop3 提供商;你必须使用 pop3s 来代替。否则这应该可以正常工作。

关于java - 如何在Java中设置Email客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5312415/

相关文章:

c# - 如何在邮件中发送收件人的本地时间?

android - 如何为 Android 创建电子邮件,使其适合屏幕/缩小/缩放,就像在 iOS 中一样

html - 如何在电子邮件中发送不可点击的链接

java - 如何使用 Google Calendar API 获取特定时间范围内的所有日历条目

java - 带有空格的正则表达式

email - 使用外部IP地址访问内部网络资源

c# - SmtpClient 发送错误的 MessageID

java - 在 Java 中创建对象实例时出错

java - SwingWorker 扩展类未显示覆盖的方法

java - 将字符串转换为 JSON 对象数组并解析它们