【发布时间】:2018-03-07 04:33:52
【问题描述】:
我正在尝试通过 javamail 连接到 gmail 服务器并尝试通过 OAuth 进行身份验证。
这是执行此操作的代码。
public static void connect() {
Properties props = System.getProperties();
props.setProperty("mail.store.protocol", "imaps");
props.put("mail.imaps.ssl.enable", "true"); //required for Gmail
props.put("mail.imaps.auth.mechanisms", "XOAUTH2");
Session session = Session.getInstance(props);
Store store = session.getStore();
store.connect("imap.gmail.com", 993, "abcimap@gmail.com", "ya29.Glx2BW9zm7wSsr9WV66KhC4kZa7dbrOA9P6HT3EMwmiLbmkdjbHZM5oHi8VfHhxM-VNDntRxQBZ_GzMM2rMa1cAxnQ3GiNaR_M9SRfT9sCIXe0l4Rz_mNM8a40aqZw");
Folder folder = store.getFolder("Inbox");
IMAPFolder imapFolder = (IMAPFolder)folder;
}
但我明白了,
线程“主”javax.mail.AuthenticationFailedException 中的异常:[AUTHENTICATIONFAILED] 凭据无效(失败) 在 com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:715) 在 javax.mail.Service.connect(Service.java:366)
这里有一个相关问题:Problems with JavaMail, GMail and OAUTH2 (not Android)
要求设置范围。但我不确定在哪里设置它。不管是在java代码里面还是外面。
你能帮我解决这个问题吗?
【问题讨论】:
标签: oauth-2.0 jakarta-mail google-oauth