我正在使用 java mail api 阅读邮件(使用 imap)。我有 2 个不同的邮箱要阅读。
以下是使用的配置:-
Microsoft Exchange Server 2007
java mail :- tried javamail-1.4 , javamail-1.5
imap.url=imapmail.somedomain.com
imap.port=143
mail.user1=user_id_doesnt_work
mail.pwd1=some_pwd
mail.user2=user_id_works
mail.pwd2=some_pwd
Java 代码:-
private void loginInbox() throws MessagingException{
Folder inbox = null;
Properties mailProps = mailProps = new Properties();
mailProps.put("mail.store.protocol", "imapmail.somedomain.com");
mailProps.put("mail.imap.starttls.enable", "true");
mailProps.put("mail.imap.starttls.required", "true");
Session session = Session.getDefaultInstance(mailProps);
Store store = session.getStore();
store.connect("imapmail.somedomain.com", 143, EMAILUSER, EMAILPWD); //throws exception here
inbox = store.getFolder(INBOX);
inbox.open(Folder.READ_WRITE);
}
I am able to login to both mail boxes through browser ,with both user id and password (url = imapmail.somedomain.com )
> 使用 JavaMail :-
使用 java mail 'mail.user2=user_id_works' ,我可以登录邮件。
但是当我使用 java 邮件 'mail.user1=user_id_doesnt_work' 时抛出异常:
javax.mail.AuthenticationFailedException: AUTHENTICATE failed. at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:723) at javax.mail.Service.connect(Service.java:364)
是否可以为该特定用户设置任何服务器设置以阻止登录尝试? 如有任何想法,我们将不胜感激。
最佳答案
由于您发布的代码忽略了您的属性,因此完全不清楚您的属性是如何被使用的。我假设那不是您正在使用的代码。
Change Session.getDefaultInstance to Session.getInstance ,如 common mistakes in the JavaMail FAQ 列表中所述.
关于java - 对于用户 id java.mail 抛出 'AUTHENTICATE failed.' ,但可以通过浏览器登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32078928/