使用JavaMail使用IMAP协议读取邮件时出现AuthenticationError

时间:2018-06-21 12:58:20

标签: authentication javamail imap putty

我正在尝试使用Java Mail API从XXX域读取电子邮件。我可以通过服务器上的PUTTY使用IMAPS协议登录和阅读电子邮件。

但是从Java中,我收到验证错误:

enter image description here

以下是我可以通过PUTTY连接的屏幕截图:

enter image description here

以下是我的代码:

Properties properties = new Properties();
            properties.put("mail.imap.host", "hostname");
            properties.put("mail.imap.port", "993");

            Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator()
            {
                protected PasswordAuthentication getPasswordAuthentication()
                {
                    return new PasswordAuthentication("username", "password");
                }
            });

            Store store = session.getStore("imaps");
            store.connect("username", "password");

是什么使它停止从Java读取邮件?

  

内部,邮件域正在使用Outlook Exchange服务器。

     

正在传递的用户名是完整的xxxx@domain.com。

1 个答案:

答案 0 :(得分:0)

您可以删除属性设置;由于您使用的是imaps,因此它们无效。您可以get rid of the Authenticator,因为您要明确传递用户名和密码。

还需要显式传递主机,否则它将连接到localhost,这可能是失败的原因。查看JavaMail debug output以了解其实际作用。如果那不能解决您的问题,请发布调试输出。