gpt4 book ai didi

java - 如何使用两步验证访问 gmail?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:06 24 4
gpt4 key购买 nike

最近我在我的 gmail 帐户中设置了两步验证,我尝试使用 Java Mail API 连接到我的 gmail 帐户,但它没有连接。

我的代码:

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", "my_account@gmail.com", "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);
}

我从 logcat 得到的:

javax.mail.AuthenticationFailedException: [ALERT] Application-specific password required: http://support.google.com/accounts/bin/answer.py?answer=185833 (Failure)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660)
at javax.mail.Service.connect(Service.java:295)
at javax.mail.Service.connect(Service.java:176)

请问有什么方法可以解决这个问题。

提前致谢。

最佳答案

当您为 gmail 帐户激活两步验证后,使用您的 gmail 凭据登录到以下链接并生成应用程序专用密码 (ASP)。您可以在代码中使用生成的密码。只需添加 ASP 代替普通密码。它应该有效。

https://accounts.google.com/IssuedAuthSubTokens?hide_authsub=1

更新:2018 年 7 月 30 日

当您打开此链接并使用 gmail id 和密码手动登录一次时,您将看到如下所示的页面。在第一个下拉菜单中选择“邮件”选项

enter image description here

在第二个下拉菜单中,根据您的要求选择平台,说“Windows Computer”或“Mac”

enter image description here

然后,点击生成按钮,您将在下一个屏幕中看到一个包含 16 个字母的代码。

像这样在你的 java 邮件程序中使用它作为密码

store.connect("imap.gmail.com", "gmail id used in the previous step", "16 alphabets code");

关于java - 如何使用两步验证访问 gmail?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16601405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com