用于访问gmail收件箱消息的javamailapi



我一直在尝试使用javamailapi来读取gmail收件箱消息。我在网上找到了以下代码。我试图在Eclipse上运行这个,但它失败了,出现了"无效凭据异常"。我在web应用程序的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);
        }
    }
}

扔掉这些代码,从JavaMail常见问题解答中使用这些代码,在那里您还可以找到许多其他有用的提示,包括调试提示。

如果您看到此异常,您将处于正确路径中,只需要更改邮件id或创建一个新的gmail id,这将降低安全性。(例如,主gmail帐户在智能手机中进行了大量配置,它与Oauth2.0的谷歌高度安全,因此gmail帐户连接将被谷歌阻止,但当您尝试使用替代gmail id或未在移动中配置的gmail id时,可以很容易地连接)之前这个让我头疼的问题终于解决了。感谢

最新更新