Ошибка входа в IMAP на Exchange Server 2016

Вопрос или проблема

Я развернул Exchange Server 2016. Я могу отправлять электронную почту через 587, но сталкиваюсь с ошибкой входа через IMAP 993 и POP3 995.

При использовании инструмента Microsoft https://testconnectivity.microsoft.com/ тест IMAP проходит, но при использовании других методов (как Java Mail или сценарии) я сталкиваюсь с ошибкой аутентификации на 993.

Я могу отправлять письма с тем же сценарием или Java Mail.

Я пробовал устанавливать LoginType во все разные режимы.

DEBUG IMAPS: пытается подключиться к хосту "mail.xxx.com", порт 993, isSSL true
* OK Служба Microsoft Exchange IMAP4 готова.
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY выполнено.
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: протоколПодключение для входа, хост=mail.xxx.com, [email protected], пароль=<not-null>
DEBUG IMAPS: команда AUTHENTICATE PLAIN подавлена
DEBUG IMAPS: результат команды AUTHENTICATE PLAIN: A1 NO AUTHENTICATE не удалось.
DEBUG IMAPS: пытается подключиться к хосту "mail.xxx.com", порт 993, isSSL true
* OK Служба Microsoft Exchange IMAP4 готова.
A0 CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN SASL-IR UIDPLUS MOVE ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
A0 OK CAPABILITY выполнено.
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: протоколПодключение для входа, хост=mail.xxx.com, [email protected], пароль=<not-null>
DEBUG IMAPS: команда AUTHENTICATE PLAIN подавлена
DEBUG IMAPS: результат команды AUTHENTICATE PLAIN: A1 NO AUTHENTICATE не удалось.
СЕРЬЕЗНО: Исключение: AUTHENTICATE не удалось.

Если вы настроите LoginType как SecureLogin, он будет использовать защищенный порт (993 для IMAP4 и 995 для POP3) и сертификат Exchange с службой POP3 или IMAP4.

Поэтому проверьте сертификат на вашем сервере Exchange, убедитесь, что он включен для службы POP3 и IMAP4.

.

Ответ или решение

Теория

Ваша проблема связана с проблемой аутентификации по протоколу IMAP на Exchange Server 2016 для порта 993, в то время как отправка сообщений через SMTP на порту 587 проходит успешно. Это может указывать на несколько возможных причин: неправильно сконфигурированный сертификат, ошибки в настройках службы IMAP, проблемы с аутентификацией или даже проблемы на стороне клиента, используемого для подключения.

IMAP (Internet Message Access Protocol) — это протокол прикладного уровня, используемый для доступа к сообщениям электронной почты на удалённом сервере из клиентского приложения. Он поддерживает транзакции и может работать совместно с различными клиентами электронной почты, включая JavaMail. Когда возникает ошибка аутентификации по IMAP, это обычно связано с проблемами доверия сертификату, неправильно настроенной службой на сервере или ошибками в конфигурации клиента.

Пример

Вы уже проводили тестирование с помощью инструмента Microsoft Connectivity Analyzer, и тест IMAP прошёл успешно, что указывает на возможность правильной конфигурации службы IMAP на сервере. Однако, использование других клиентов, таких как JavaMail, вызывает ошибки аутентификации. Ваши лог-файлы подтверждают, что используется команда AUTHENTICATE PLAIN, но возникают ошибки выполнения этой команды.

Эта ситуация может быть связана с тем, что Exchange Server неправильно обрабатывает команду AUTHENTICATE PLAIN от вашего клиентского приложения, или с тем, что клиентское приложение неправильно форматирует запрос на аутентификацию.

Применение

  1. Проверка Сертификатов: Как указывает оригинальное описание проблемы, убедитесь, что ваш сертификат SSL/TLS действительно включает службы IMAP и POP3. Для проверки сертификатов на Exchange Server выполните следующую команду в Exchange Management Shell:

    Get-ExchangeCertificate | Format-List Services, Thumbprint, Subject

    Убедитесь, что у вашего активного сертификата в поле Services есть метки IMAP и/или POP3.

  2. Настройка IMAP и POP служб:

    • Убедитесь, что службы IMAP и POP3 действительно запущены. Выполните в PowerShell:

      Get-Service *imap* | Select-Object DisplayName, Status
      Get-Service *pop* | Select-Object DisplayName, Status
    • Если какой-либо сервис не работает, его следует вручную запустить:

      Start-Service MSExchangeIMAP4
      Start-Service MSExchangePOP3
  3. Аутентификация и Логирование:

    • Проверьте настройки аутентификации для IMAP. Это можно сделать через EAC (Exchange Admin Center) или через PowerShell командой:

      Get-ImapSettings | Format-List LoginType
    • Изменяйте тип входа между Basic, SecureLogin, и другими в зависимости от нужной конфигурации. Например:

      Set-ImapSettings -LoginType Basic
  4. Клиентская Конфигурация:

    • Проверьте корректность формата данных, отправляемых клиентом при аутентификации. Убедитесь, что пользовательское имя и пароль передаются в корректной кодировке, особенно если сервер ожидает базовую аутентификацию.
    • Добавьте расширенное логирование в клиентском приложении на основе JavaMail, чтобы получить дополнительные данные об ошибках.
  5. Проверка Файрвола и Сетевых Настроек:

    • Убедитесь, что ваш брандмауэр или сетевые устройства не блокируют трафик по необходимым портам. Используйте команду Test-NetConnection в PowerShell для проверки доступности:
      Test-NetConnection -ComputerName mail.xxx.com -Port 993
  6. Проверка Ошибок Журнала Exchange:

    • В журнале событий Windows (Event Viewer) на сервере Exchange, ищите ошибки в логах приложений, связанные с IMAP, для получения дополнительной информации о возможных проблемах.

Применив верхеперечисленные шаги, вы сможете устранить проблему с аутентификацией по IMAP на Exchange Server 2016. Постарайтесь в удобном случае протестировать подключения и проверьте, исчезла ли ошибка.

Оцените материал
Добавить комментарий

Капча загружается...