我需要通过IMAPS JavaMail连接到Microsoft Exchange Server.首先,我得到了:

A1 NO AUTHENTICATE failed.

javax.mail.AuthenticationFailedException: AUTHENTICATE failed.

我的调试器中的异常.

然后,我禁用了一些身份验证协议:

imapProps.setProperty("mail.imaps.auth.plain.disable", "true");

imapProps.setProperty("mail.imaps.auth.ntlm.disable", "true");

imapProps.setProperty("mail.imaps.auth.gssapi.disable", "true");

这是我得到的新例外(我附上了整个日志):

DEBUG: setDebug: JavaMail version 1.4.4

DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc]

DEBUG: mail.imap.fetchsize: 16384

DEBUG: mail.imap.statuscachetimeout: 1000

DEBUG: mail.imap.appendbuffersize: -1

DEBUG: mail.imap.minidletime: 10

DEBUG: disable AUTH=PLAIN

DEBUG: disable AUTH=NTLM

DEBUG: enable STARTTLS

DEBUG: trying to connect to host "host.domain.com", port 993, isSSL true

* OK The Microsoft Exchange IMAP4 service is ready.

A0 CAPABILITY

* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+

A0 OK CAPABILITY completed.

DEBUG IMAP: AUTH: NTLM

DEBUG IMAP: AUTH: GSSAPI

DEBUG IMAP: AUTH: PLAIN

DEBUG: protocolConnect login, host=host.domain.com, user=user@domain.com, password=

A1 LOGIN user@domain.com password

A1 NO LOGIN failed.

DEBUG: trying to connect to host "host.domain.com", port 993, isSSL true

* OK The Microsoft Exchange IMAP4 service is ready.

A0 CAPABILITY

* CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+

A0 OK CAPABILITY completed.

DEBUG IMAP: AUTH: NTLM

DEBUG IMAP: AUTH: GSSAPI

DEBUG IMAP: AUTH: PLAIN

DEBUG: protocolConnect login, host=host.domain.com, user=user@domain.com, password=

A1 LOGIN user@domain.com password

A1 NO LOGIN failed.

javax.mail.AuthenticationFailedException: LOGIN failed.

at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:660)

at javax.mail.Service.connect(Service.java:317)

at javax.mail.Service.connect(Service.java:176)

at ConnectMail.connectMail(ConnectMail.java:63)

at Main.main(Main.java:9)

现在我得到了“NO LOGIN failed”异常.

这是我的完整代码:

Properties imapProps = new Properties();

imapProps.setProperty("mail.imaps.socketFactory.port", "993");

imapProps.setProperty("mail.imaps.starttls.enable", "true");

imapProps.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

imapProps.setProperty("mail.imaps.socketFactory.fallback", "false");

imapProps.setProperty("mail.imaps.auth.plain.disable", "true");

imapProps.setProperty("mail.imaps.auth.ntlm.disable", "true");

imapProps.setProperty("mail.imaps.auth.gssapi.disable", "true");

imapProps.setProperty("username", "user@domain.com");

imapProps.setProperty("password", "password");

String host = "host.domain.com";

int port = Integer.parseInt("993");

Authenticator authenticator = new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication("user@domain.com", "password");

}

};

session = Session.getInstance(imapProps, authenticator);

session.setDebug(true);

Store store = session.getStore("imaps");

store.connect(host, "user@domain.com", "password");

解决方法:

您需要使用支持NTLM身份验证的较新版本的JavaMail.最新版本是1.5.1.

标签:java,authentication,javamail,imap,exchange-server

来源: https://codeday.me/bug/20190629/1324396.html

java邮箱exchange_使用Javamail访问Microsoft Exchange邮箱(IMAP,MS Exchange)相关推荐

  1. qq企业邮箱 java发送_spring配置javamail利用qq企业邮箱发送邮件。

    javax.net.ssl.SSLSocketFactory false true true 25000 //java调用 @Resource private JavaMailSender mailS ...

  2. 卸载网易邮箱大师邮件从服务器删除,网易邮箱大师-高效强大的全平台邮箱客户端...

    常见问题 收不到邮件怎么办? 你可以按以下方式尝试自助解决: 1. 请在"垃圾邮件"等其他文件夹中查看是否有对应邮件. 2. 邮件可能被聚合了,到设置中取消勾选"按主题聚 ...

  3. 用SMTP,POP3访问Exchange邮箱:Exchange2003系列之六

    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.[url]http://yuelei.blog.51cto.com/202879/76 ...

  4. Outlook通过RPC/RPC Over HTTPS访问Exchange邮箱

    上一篇博文介绍了一些邮箱的简单配置,这篇我们介绍Outlook通过RPC/RPC Over HTTPS访问Exchange邮箱   我们先看一下有哪些方式可以访问Exchange ①Outlook作为 ...

  5. 使用outlook 2007配置microsoft exchange邮箱方法步骤

    1.通过配置outlook2007来收发如163,新浪等邮箱操作比较方便易配 我们可以打开microsoft outlook根据向导来配置, 按照默认的选择往下走即可,点击next. 在接下来的页面里 ...

  6. 通过JavaMail访问Hotmail邮箱

    [size=large]http://blog.csdn.net/changlich/archive/2007/01/01/1472089.aspx 相信许多人都有msn聊天工具的帐号,例如abc@h ...

  7. 通过JavaMail访问Hotmail邮箱 .

    相信许多人都有msn聊天工具的帐号,例如abc@hotmail.com ,这个账号其实也是一个邮件地址,可以进行正常的邮件收发功能,你可以通过网址 http://www.hotmail.com 来访问 ...

  8. Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)

    加油加油. --WH 一.发送邮件的原理 在了解其原理之前,先要知道两个协议,SMTP和POP3 SMTP:Simple Mail Transfer Protocol,即简单邮件传输协议,发送邮件的协 ...

  9. 用OWA访问Exchange邮箱

    OWA是Outlook Web Access的缩写,OWA允许用户用浏览器通过HTTP/HTTPS访问Exchange邮箱,是一种重要的在线访问方式.<?xml:namespace prefix ...

最新文章

  1. Go 知识点(12) — 类型转换以三方库 cast
  2. html 文字不可选择,有没有办法在HTML页面上使文本无法选择?
  3. 弱电工程网络视频监控系统联网方式及接地要求
  4. 关于私有云与存储风向的深度解读
  5. JAVA面对对象(一)——封装
  6. 常见的php笔试题(附答案)搜集整理
  7. python 的内存回收,及深浅Copy详解
  8. webapi自宿主设置本地端口使用https协议
  9. Jenkins配置MSBuild时使用环境变量
  10. jquery.autocomplete 使用解析
  11. 12.万无一失:网站的高可用架构
  12. 大学生简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载 HTML5期末大作业 (1)
  13. DirectX Redistributable 多国语言安装版
  14. C# RichTextBox 制作文本编辑器
  15. 程序员应该知道的经济学常识
  16. springboot bootcdn使用
  17. LAPACK使用中出现问题的解决方案(VS平台下的)
  18. 总结低代码海报平台编辑器难点
  19. 计算机课学生段密码,启课程学生端电脑版
  20. 计算机蓝屏代码0x000000ED,电脑蓝屏代码0x000000ed解决步骤

热门文章

  1. java web 开发技术大全 代码_Java Web开发技术大全
  2. php 跳板机连接mysql,使用python如何通过跳板机连接MySQL数据库
  3. 考研数学(180°为什么等于π)
  4. qlineedit限制输入数字_Excel单元格限制录入,实用小技巧
  5. python字符串_教你快速了解 Python 字符串
  6. 浅谈Java中类加载机制
  7. Java的一些学习心得
  8. 基于单片机超声波测距系统的设计_一种基于UWB技术实现的测距防撞系统
  9. python pandas库 画图_python绘图:matplotlib和pandas的应用
  10. element ui 多个子组件_ElementUI 技术揭秘(2) 组件库的整体设计