嗨抱歉我的英语。我尝试通过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
我不知道可能会发生什么,因为如果密码错误会显示相应的身份验证失败错误,但如果它很好,则会显示我上面发布的错误。
答案 0 :(得分:0)
您应该修复这些common mistakes。
没有主机“imaps.google.com”,所以我不知道你真正要连接的是什么。
您可以发布显示失败的debug output吗?
您使用的是什么版本的JavaMail?
请注意,如果您使用的是当前版本的JavaMail,则调试输出将不包含将显示错误的SASL交换,因为该交换将包含您的密码。相反,如果您使用的是旧版本,请注意发布的内容,因为它可能包含您的密码的编码版本。