【问题标题】:Invalid SASL argument in my Android application我的 Android 应用程序中的无效 SASL 参数
【发布时间】:2014-07-23 17:53:12
【问题描述】:

嗨,对不起我的英语。我尝试通过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

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

【问题讨论】:

  • 当用户名和密码字段为空时,我遇到了这个问题。

标签: android email gmail jakarta-mail imap


【解决方案1】:

你应该修复这些common mistakes

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-02-10
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2019-08-27
    相关资源
    最近更新 更多