Почему я не могу подключиться к своему почтовому ящику с помощью JavaMail (протокол IMAP) и получаю ошибку NO AUTHENTICATE failed?

Я пытаюсь подключиться к почтовому ящику по протоколу JavaMail IMAP, но не могу подключиться.

  1. телнет успешно
  2. Возможность настроить веб-клиент Outlook с теми же учетными данными
  3. Пробовал с последней версией JavaMail 1.6.2 (версия JDK7)
  4. Пробовал также установить следующее свойство: mail.imap.auth.plain.disable=true
Properties props = System.getProperties();
props .setProperty("mail.store.protocol", "imap");
props .setProperty("mail.debug.auth", "true");
props .setProperty("mail.imap.ssl.enable", "true");
props .setProperty("mail.imap.auth.plain.disable", "true");
Session session = Session.getInstance(props, new javax.mail.Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(UserName, Password);
                }
            });
session.setDebug(true);
store = session.getStore("imap");
store.connect(ServerName, Port, UserName, Password);
DEBUG: setDebug: JavaMail version 1.6.2
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
DEBUG IMAP: mail.imap.fetchsize: 16384
DEBUG IMAP: mail.imap.ignorebodystructuresize: false
DEBUG IMAP: mail.imap.statuscachetimeout: 1000
DEBUG IMAP: mail.imap.appendbuffersize: -1
DEBUG IMAP: mail.imap.minidletime: 10
DEBUG IMAP: closeFoldersOnStoreFailure
2019-06-12 20:10:11 imap : Before connect
DEBUG IMAP: trying to connect to host "<mail-server>", port 993, isSSL true
* OK The Microsoft Exchange IMAP4 service is ready.
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=NTLM AUTH=GSSAPI SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: protocolConnect login, host=<mail-server>, user=username, password=<non-null>
DEBUG IMAP: mechanism PLAIN disabled by property: mail.imap.auth.plain.disable
DEBUG IMAP: mechanism LOGIN not supported by server
A1 AUTHENTICATE NTLM
+ 
DEBUG NTLM: type 1 message: 4E 53 50 00 01 00 00 00 03 A2 00 00 00 00 00 00 2F 00 00 00 0F 00 0F 00  
<NTLMSSL encoded data>
A1 NO AUTHENTICATE failed.
DEBUG IMAP: trying to connect to host "<mail-server>", port 993, isSSL true
* OK The Microsoft Exchange IMAP4 service is ready.
B0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=NTLM AUTH=GSSAPI SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
B0 OK CAPABILITY completed.
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: AUTH: NTLM
DEBUG IMAP: AUTH: GSSAPI
DEBUG IMAP: protocolConnect login, host=<mail-server>, user=username, password=<non-null>
DEBUG IMAP: mechanism PLAIN disabled by property: mail.imap.auth.plain.disable
DEBUG IMAP: mechanism LOGIN not supported by server
B1 AUTHENTICATE NTLM
+ 
DEBUG NTLM: type 1 message: 4E 54 4C 53 45 4F 4C 56 41 44 53 52 56 30 39 31 
<NTLMSSL encoded data>
B1 NO AUTHENTICATE failed.
javax.mail.AuthenticationFailedException: AUTHENTICATE failed.
        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:732)
        at javax.mail.Service.connect(Service.java:388)
        at com.maildebug.MailDebugUtil.Pop3_IMAP(MailDebugUtil.java:131)
        at com.maildebug.MailDebugUtil.main(MailDebugUtil.java:67)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
1 255
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы почти наверняка сталкиваетесь с ошибкой сервера Exchange, когда он объявляет, что поддерживает PLAIN-аутентификацию, но на самом деле это не так.

Выходные данные отладки не показывают, что вы отключили PLAIN-аутентификацию, возможно, вы сделали что-то не так с настройкой этого свойства? Можете ли вы включить код, который вы фактически используете, который показывает, как вы установили свойство?

Обратите также внимание, что вы не нужен аутентификатор.

Я обновил сообщение, чтобы показать, как я устанавливаю свойство.

mathiyarasu.T Arasu 13.06.2019 07:11
Ответ принят как подходящий

Протокол IMAP изменился на IMAPI4, из-за чего сервер обмена перестал обмениваться данными, что привело к этой проблеме. Мы отменили эти изменения. Теперь вопрос решился.

Другие вопросы по теме