У моего клиента периодически возникают проблемы с отправкой электронной почты нескольким клиентам. На самом деле это произошло только за последние пять дней и пока только с шестью разными сообщениями, но все они имеют одинаковые различия между работающей и неудавшейся доставкой.
На скриншоте ниже разница между работающей и неудачной доставкой заключается в IP-адресе сервера / имени хоста, на который он пытается доставить. Я выбрал этого получателя, поскольку их домен является общим. В других попытках с десятками сообщений в неделю это выглядит очень похоже.
По какой-то причине Exchange Server получает IP-адрес домена учетной записи получателя вместо использования адреса из записи MX. (например, mindspring.com вместо mx3.mindspring.com)
Мой клиент работает под управлением Small Business Server 2011 Standard с Exchange 2010. Остальные ~ 200 сообщений в день отправляются нормально.
Мои исследования на данный момент:
TL; DR: Один из двух провайдеров, которых мы используем, блокирует DNS-запросы извне своей сети. DNS-запросы иногда приходили из сети другого интернет-провайдера ...
Исправление: Реализуйте статический маршрут в брандмауэре для DNS-серверов интернет-провайдеров, чтобы использовать определенный интерфейс или использовать другую службу (например, OpenDNS или Google DNS).
История: Ну мы выяснили, в чем проблема. Сервер обмена работал в основном так, как мы и ожидали. У нас есть двойное WAN-соединение, на которое брандмауэр переключается, если основной выходит из строя. Итак, на контроллере домена мы добавили DNS-серверы для обоих наших интернет-провайдеров, которые будут опрашиваться (вместе с OpenDNS в качестве третичного варианта). Нам нужно будет провести дополнительное исследование этой конкретной процедуры, но мы обнаружили, что Exchange не все время опрашивал первый сервер (наше основное WAN-соединение).
Казалось, что он постоянно переключался между всеми вариантами. Это работало без проблем, пока наш вторичный интернет-провайдер не изменил настройки на своих DNS-серверах, чтобы отклонять соединения с IP-адресов за пределами их сети. Захват пакета выявил этот ответ, который в конечном итоге привел нас к нашему выводу. Когда Exchange получил отказ, он просто запросил запись A и попытался установить соединение, используя ее.
Что ж, если я попытаюсь использовать telnet mindspring.com:25, я не смогу подключиться, поэтому я подозреваю, что ServerHostname - отвлекающий маневр. Очевидно, что вы подключаетесь к почтовому серверу, но для использования порта 25 требуется проверка подлинности. Вы получаете ошибку 550 либо потому, что на сервере, к которому вы подключены, включена проверка подлинности SMTP, либо потому, что они пытается заставить TLS.
Если вы перейдете в командную строку на этом сервере и наберете:
nslookup
set type=mx
mindspring.com
что ты получишь обратно? Все проверяется? Вы получите тот же ответ, если сделаете?
nslookup
server 8.8.8.8
set type=mx
mindspring.com
Или вы работаете на mindspring, и это все внутреннее?