首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java mail iCloud邮件连接到IMAP服务器

Java mail iCloud邮件连接到IMAP服务器
EN

Stack Overflow用户
提问于 2015-08-28 17:53:23
回答 2查看 1.2K关注 0票数 1

我正在尝试使用Java应用程序连接iCloud邮件。我想使用用户凭据读取来自iCloud IMAP邮件服务器的邮件。但它不起作用。下面的代码片段适用于Gmail、雅虎、Outlook,但不适用于iCloud:

代码语言:javascript
复制
public void connectToIMAP(final User user, MailSettings settings) {     
    ICloudSettings iCloud = (ICloudSettings) settings;

    properties = System.getProperties();
    properties.setProperty("mail.store.protocol", iCloud.imap.protocol);
    properties.setProperty("mail.imap.starttls.enable", "true");
    properties.setProperty("mail.imap.debug", "true");
    try {
        session = Session.getInstance(properties);
        session.setDebug(true);         
        store = session.getStore();         
        store.connect(iCloud.imap.host, iCloud.imap.port, user.getEmail(), user.getPassword());
        folder = store.getFolder(MailSettings.INBOX);
        folder.open(Folder.READ_ONLY);          
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public ICloudSettings() {
    imap.host = "imap.mail.me.com";
    imap.port = 993;
    imap.protocol = "imaps";
}

调试信息为:

调试: setDebug: JavaMail版本1.5.4

调试: getProvider()返回

javax.mail.ProviderSTORE、imaps、com.sun.mail.imap.IMAPSSLStore、Oracle

调试IMAPS: mail.imap.fetchsize: 16384

调试IMAPS: mail.imap.ignorebodystructuresize: false

调试IMAPS: mail.imap.statuscachetimeout: 1000

调试IMAPS: mail.imap.appendbuffersize:-1

调试IMAPS: mail.imap.minidletime: 10

调试IMAPS: closeFoldersOnStoreFailure

调试IMAP4 :正在尝试连接到主机"imap.mail.me.com",端口993,isSSL true * OK CAPABILITY mr11p00im-iscream006 15e43XAPPLEPUSHSERVICE IMAP4 IMAP4rev1 SASL-IR AUTH=ATOKEN AUTH=PLAIN iSCREAM准备好翻滚( 15E43 -20056:9352) mr11p00im-iscream006 24:210:09:33:11:22

调试IMAPS: AUTH: ATOKEN

调试IMAPS: AUTH: PLAIN

调试IMAPS: protocolConnect登录、host=imap.mail.me.com、user=yogesh.h.patil@icloud.com、password=

调试IMAPS: AUTHENTICATE普通命令跟踪已取消

调试com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:723):AUTHENTICATE普通命令结果: A0 NO AUTHENTICATIONFAILED身份验证失败javax.mail.AuthenticationFailedException: AUTHENTICATIONFAILED身份验证在javax.mail.Service.connect(Service.java:364)失败

EN

回答 2

Stack Overflow用户

发布于 2015-11-03 15:35:47

嗨,我也是通过IMAP连接到iCloud的,但不是用java邮件。我使用的是来自K9邮件客户端的代码片段,可以在github上找到。我发现,当你为你的icloud账户开启双因素授权时,访问IMAP是不起作用的。第二种情况是当我收到与您相似的消息(认证失败)时,我使用的电子邮件地址不同于@icloud.com地址。例如,我用我的gmail帐户设置了我的苹果id,并创建了@icloud.com别名。我无法使用gmail地址作为用户名访问IMAP,但使用@icloud.com别名时没有问题。

票数 2
EN

Stack Overflow用户

发布于 2016-03-30 21:18:36

如果您启用了双因素身份验证,则需要创建特定于应用程序的密码。使用应用程序特定的密码,而不是标准的Apple ID密码。

此外,如果你的苹果ID以@me.com结尾(比如foo@me.com),那么IMAP username应该只是电子邮件地址的用户名部分(对于email => foo@me.com,IMAP username => foo)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32268200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档