我的Android应用程序中的SASL参数无效

时间:2014-07-23 17:53:13

标签: android email gmail javamail imap

嗨抱歉我的英语。我尝试通过javamail从Android手机中找到第一个gmail帐户中未读邮件的数量。这是我的代码:

//IMAPS protocol
    Properties props2 = new Properties();
    props2.setProperty("mail.store.protocol", "imaps");
    props2.setProperty("mail.imaps.host", "imaps.google.com");
    props2.setProperty("mail.imaps.port", "993");
    props2.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props2.setProperty("mail.imaps.socketFactory.fallback", "false");

    //Setting IMAP session
    Session imapSession = Session.getInstance(props2);

    try {

        store = imapSession.getStore("imaps");
        store.connect("imaps.google.com", account, pass);          

        inbox = store.getFolder("INBOX");
        inbox.open(Folder.READ_ONLY);

        return inbox.getUnreadMessageCount();

    } catch (Exception mex) {
        mex.printStackTrace();
        return 0;
    }

在我的手机中执行的那一刻,logcat向我显示:

07-23 11:58:19.051:W / System.err(5430):javax.mail.MessagingException:A1 BAD无效的SASL参数。 ye3mb61911974vdc;

07-23 11:58:19.061:W / System.err(5430):嵌套异常是:

07-23 11:58:19.061:W / System.err(5430):com.sun.mail.iap.BadCommandException:A1 BAD无效的SASL参数。 ye3mb61911974vdc

我不知道可能会发生什么,因为如果密码错误会显示相应的身份验证失败错误,但如果它很好,则会显示我上面发布的错误。

1 个答案:

答案 0 :(得分:0)

您应该修复这些common mistakes

没有主机“imaps.google.com”,所以我不知道你真正要连接的是什么。

您可以发布显示失败的debug output吗?

您使用的是什么版本的JavaMail?

请注意,如果您使用的是当前版本的JavaMail,则调试输出将不包含将显示错误的SASL交换,因为该交换将包含您的密码。相反,如果您使用的是旧版本,请注意发布的内容,因为它可能包含您的密码的编码版本。