На 2 разных серверах работают 2 веб-сайта. Оба сайта отправляют электронные письма на внутренние и внешние адреса. Когда веб-сайты использовали Exchange 2003, они оба работали нормально. Затем клиент перешел с Exchange 2003 на Exchange 2010. Теперь только один из веб-сайтов по-прежнему может отправлять электронные письма. Другой продолжает выходить из строя с ошибкой
SMTP-серверу требуется безопасное соединение, иначе клиент не прошел аутентификацию. Ответ сервера был: 5.7.1 Клиент не аутентифицирован.
Неисправный веб-сайт отлично передает учетные данные и использует тот же код, что и рабочий веб-сайт. Даже когда я переключаю отказавший веб-сайт на использование электронной почты рабочего веб-сайта, он не работает с той же ошибкой. Рабочий веб-сайт не использует SSL, и он все еще работает. SMTP-серверу не требуется безопасное соединение.
У меня есть приложение для Windows, которое я использую для тестирования отправки электронной почты. С отказавшего веб-сервера приложение может использовать оба набора логинов для отправки электронных писем. Это только кажется, что отправка через веб-сайт не выполняется с этой ошибкой.
Я не так хорошо знаком с серверами Exchange, и у меня нет прямого доступа к серверу Exchange, поэтому есть ли что-нибудь, что нужно проверить, что может привести к тому, что второй веб-сервер не сможет отправлять электронные письма через веб-сайт, но может отправлять через приложение для Windows?
Лично я бы понюхал трафик между «рабочим» веб-сервером и сервером Exchange и сравнил его с диалогом неработающего веб-сервера. Вы можете бороться с изменением настроек сколько угодно, но ничто не сравнится с тем, чтобы просто видеть, что говорят по сети.
Я бы отложил деньги из-за неправильно настроенного коннектора получения.
Exchange On-Premises -> Конфигурация сервера -> Транспортный сервер-концентратор
В области «Коннекторы получения» для рассматриваемого сервера просмотрите каждую из страниц свойств на вкладке «Сеть», чтобы найти работающий сервер. Вероятно, он установлен на «Внешне защищенный» на вкладке «Аутентификация», что и обеспечивает его правильную работу. Вы просто должны иметь возможность добавить IP-адрес отказавшего сервера в область «Получать почту с удаленных серверов, имеющих эти IP-адреса:».
(Я основываю это на Exchange 2007, поэтому извиняюсь, если он значительно изменился, я не смотрел на 2010).
Для тестирования установите новый соединитель приема на другой порт, чтобы поэкспериментировать с настройками. Вместо этого заставьте отказавший сервер использовать это.
И +1 к Эвану для Wireshark. Если вы не используете SSL, вы можете просмотреть весь SMTP-диалог между веб-приложением и соединителем приема. Это лучший способ найти, где они тоже расходятся в своем поведении.