3

我一直在尝试使用 javamail api 来阅读 gmail 收件箱消息。我在互联网上找到了以下代码。我正在尝试在 Eclipse 上运行它,但由于“无效凭据异常”而失败。我在 web-app 的 lib 目录中有 mail.jar、activation.jar、imap.jar 和其他 jar 文件。

关于我为什么收到此异常的任何想法?谢谢。

javax.mail.AuthenticationFailedException: Invalid credentials n67if632335wep.219
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)
at org.mb.mail.MailReader.main(MailReader.java:23)


package org.mb.mail;

import java.util.Properties;

import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.*;

public class MailReader {

public static void main(String args[]) {
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
try {
Session session = Session.getDefaultInstance(props, null);
Store store = session.getStore("imaps");
store.connect("imap.gmail.com", "<username>", "password");
System.out.println(store);

Folder inbox = store.getFolder("Inbox");
inbox.open(Folder.READ_ONLY);
Message messages[] = inbox.getMessages();
for(Message message:messages) {
System.out.println(message);

}

        } catch (NoSuchProviderException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (MessagingException e) {
            e.printStackTrace();
            System.exit(2);
        }

    }

}
4

2 回答 2

4

丢弃该代码并使用JavaMail FAQ中的该代码,您还可以在其中找到许多其他有用的提示,包括调试提示。

于 2012-07-11T22:23:58.973 回答
0

如果您看到此异常,则说明您在正确的路径中,只需更改邮件 ID 或创建一个 安全性较低的新 gmail id 。(例如,主要 gmail 帐户在智能手机中进行了很多配置,并且通过 google 高度安全Oauth2.0,因此 gmail 帐户连接将被 google 阻止,但是当您尝试使用备用 gmail id 或未在移动设备中配置的 gmail id时可以轻松连接)以前这个问题让我头疼,终于得到了解决。谢谢

于 2019-04-01T07:47:48.630 回答