Назад | Перейти на главную страницу

Встроенный SMTP-сервер Windows Server 2019: сообщения электронной почты застревают в очереди, а «Удаленный сервер не отвечает на попытку подключения» в журнале событий.

Я настраиваю новый выделенный сервер с использованием Windows Server 2019. Он заменяет старый на базе Windows Server 2008 R2. У меня был встроенный SMTP-сервер, работающий на старом сервере, без проблем. Я также настроил новый сервер в качестве SMTP-сервера, используя свои собственные заметки о настройке старого, а также двойную проверку вторжений в Интернете. В основном по инструкции здесь:

http://www.vsysad.com/2017/05/install-and-configure-smtp-server-on-windows-server-2016/

У меня проблема в том, что электронная почта не покидает C: \ inetpub \ mailroot \ Queue и никогда не дойдет до получателей. Журнал событий Windows содержит следующие предупреждения:

Событие 4006, smtpsvc
«Ошибка доставки сообщения на хост 204.79.197.212 при доставке в удаленный домен hotmail.com по следующей причине: удаленный сервер не ответил на попытку подключения».

Вышеупомянутое - всего лишь пример использования адреса назначения Hotmail. Такое же сообщение получено при попытке отправить на адреса в других доменах.

Что я пробовал:

  1. Я отправил электронное письмо вручную с помощью Telnet. Электронное письмо создается и принимается локальным SMTP-сервером без проблем, но не покидает папку очереди.
  2. Я запустил SmtpDiag для адресов Hotmail и Gmail. Без вопросов. Записи MX отображаются должным образом.
  3. Я использовал Nslookup и подтвердил, что записи MX разрешены.
  4. Я успешно подключился к SMTP-серверам Hotmail и Gmail с помощью Telnet.
  5. Я использовал Wireshark и смог увидеть, что мой сервер пытается получить доступ только к IP-адресу целевого домена электронной почты, через порт 25. Итак, для Hotmail он просто разрешает IP-адрес hotmail.com (который является 204.79.197.212) и пытается открыть соединение с этим адресом через порт 25. Очевидно, что это не удается, поскольку там нет SMTP-сервера. Мой сервер даже не пытается получить доступ к SMTP-серверу по адресу, указанному в записи MX.

Этот последний пункт выше также связан с интересной вещью, которую я заметил, а именно, что IP-адрес, указанный в сообщении о событии 4006, не является одним из IP-адресов, перечисленных в записях MX. Это IP-адрес фактического домена hotmail.com. Итак, почему он пытается связаться с hotmail.com, а не с одним из адресов, перечисленных в записях MX?

Для дальнейшего исследования я использовал Telnet для отправки электронной почты в один из моих собственных доменов. Конечно же, я нахожу в журнале событие 4006, говорящее:

«Не удалось доставить сообщение на хост« [IP моего домена] »при доставке в удаленный домен« [мой домен] »по следующей причине: соединение было разорвано удаленным хостом».

Снова кажется, что SMTP-сервер пытается подключиться к IP-адресу моего домена и порту 25, а не к адресу, указанному в записи MX.

Это все, что я сделал. Возможно, я здесь что-то неправильно интерпретирую, но похоже, что SMTP-сервер Windows пытается подключиться к домену адреса электронной почты напрямую через порт 25 (игнорируя записи MX) ... Любые идеи о том, что я делаю неправильно или, возможно, как мне действовать при устранении этой проблемы?

РЕДАКТИРОВАТЬ: Нашел обходной путь, а также то, что вызывает проблему. Смотрите мой ответ ниже.

Я продолжал исследовать эту проблему и теперь считаю, что это ошибка Windows Server 2019. Я действительно нашел обходной путь а также как воспроизвести эту проблему со 100% уверенностью.

Почта не будет отправляться правильно, если для типа запуска службы SMTP установлено значение «Автоматический» (т.е. запускать сразу при загрузке). Однако, если служба SMTP настроена на запуск вручную, а затем запускается вручную из services.msc или из диспетчера IIS6, электронная почта выйдет из очереди и будет доставлена ​​получателям.

Если для службы используется «Автоматический» запуск, любые попытки отправить электронное письмо всегда будут приводить к тому, что электронное письмо застревает в очереди, а событие 4006 (подробности см. В исходной публикации) записывается в журнал событий. Это на 100% воспроизводимо в моих тестах.

Временное решение - установить тип запуска «Автоматический (отложенный запуск)».. Если я правильно проинформирован, это приведет к запуску службы SMTP через 2 минуты после запуска последней "автоматической" службы. Это не оптимальное решение, но пока подойдет.

Вот пошаговое описание проблемы для полноты:

  1. Установить функцию SMTP-сервера
  2. Перейдите в диспетчер IIS6, щелкните правой кнопкой мыши виртуальный сервер SMTP и выберите «Свойства».
  3. Перейдите на вкладку "Доступ"
  4. Нажмите «Подключение ...», выберите «Только список ниже» и добавьте 127.0.0.1. Щелкните "ОК".
  5. Нажмите «Relay ...», выберите «Only the list below» и добавьте 127.0.0.1. Снимите флажок внизу окна. Щелкните "ОК".
  6. Нажмите «ОК» еще раз, чтобы выйти из свойств виртуального SMTP-сервера.
  7. Откройте services.msc и установите для типа запуска службы «Простой протокол передачи почты (SMTP)» значение «Автоматически».
  8. Перезагрузите компьютер и попытайтесь отправить электронное письмо.

Примечание. Шаги 2–6, вероятно, не нужны для воспроизведения проблемы, но это базовая настройка, которую я использовал.