android:imap for icloud

时间:2014-09-30 08:27:42

标签: android javamail imap icloud

我正在尝试添加一个icloud帐户。我正在使用javamail。传出连接正在运行。但是传入的测试失败了

IMAP(接收邮件服务器)信息: 服务器名称:imap.mail.me.com 安全类型:选择SSL 港口:993 用户名:myid@icloud.com 密码:您的iCloud密码

props.setProperty("mail.store.protocol", sProtocol);
        props.setProperty("mail." + sProtocol + ".host", acct.sIncomingHost);
        props.setProperty("mail." + sProtocol + ".port",
                acct.sIncomingHostPort);

        props.setProperty("mail." + sProtocol + ".timeout", "30000");
        props.setProperty("mail." + sProtocol + ".connectiontimeout",
                "30000");


        if (acct.iIncomingHostEncryption == Constants.ENCRYPT_TLS) {
            Log.i(TAG, "STARTTLS...");
            props.put("mail." + sProtocol + ".starttls.enable", "true");

            props.setProperty("mail." + sProtocol + ".ssl.trust", "*");
            props.setProperty("mail." + sProtocol
                    + ".ssl.socketFactory.class",
                    "com.myproject.SEMPSSLSocketFactory");
            props.setProperty("mail." + sProtocol
                    + ".ssl.socketFactory.fallback", "false");

        } else if (acct.iIncomingHostEncryption == Constants.ENCRYPT_SSL) {
            Log.i(TAG, "Enable SSL...");
            props.put("mail." + sProtocol + ".ssl.enable", "true");



        } 

它适用于gmail / yahoo帐户。我认为需要更改属性集。请帮我解决这个问题。

我到了 09-30 15:09:25.249:W / System.err(1095):idg.javax.mail.AuthenticationFailedException:[AUTHENTICATIONFAILED]身份验证失败 09-30 15:09:25.249:W / System.err(1095):at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:663)

我的凭据是正确的,因为邮件是使用smtp成功发送到此帐户的。获取此检查传入主机

2 个答案:

答案 0 :(得分:0)

摆脱socket factory stuff,然后发布debug output

答案 1 :(得分:0)

它使用了以下属性

props.put(“mail。”+ sProtocol +“.starttls.enable”,“true”);

            props.setProperty("mail." + sProtocol + ".ssl.trust", "*");
            props.setProperty("mail." + sProtocol
                    + ".ssl.socketFactory.class",
                    "com.myproject.MySSLSocketFactory");
            props.setProperty("mail." + sProtocol
                    + ".ssl.socketFactory.fallback", "false");