Встроенный 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) ... Любые идеи о том, что я делаю неправильно или, возможно, как мне действовать при устранении этой проблемы?

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

4
задан 21 February 2019 в 23:41
3 ответа

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

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

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

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

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

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

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

3
ответ дан 3 December 2019 в 03:39

В моем случае оказалось, что AWS препятствует отправке писем с сервера.

«Важно:Amazon Elastic Compute Cloud (Amazon EC2)ограничивает исходящий трафик Amazon Virtual Private Cloud (Amazon VPC)через порт 25 для всех инстансов EC2 по умолчанию. Если вашему приложению требуется трафик на SMTP-порту 25 вы можете запросить снятие этого ограничения».

1
ответ дан 12 January 2021 в 08:43

Вы получите точно такое же поведение, если машина является виртуальной машиной, размещенной в Azure. После того, как я попробовал предложения MrFika выше, у меня не было успеха. Похоже, проблема связана с тем, что правило Microsoft для подписки на виртуальные машины Azure:

Начиная с 15 ноября 2017 г. напрямую во внешние домены (такие как outlook.com и gmail.com) из виртуальная машина (ВМ) доступна только для определенной подписки типы в Azure. Исходящие SMTP-соединения, использующие TCP-порт 25, были заблокирован. (Порт 25 используется в основном для доставки электронной почты без проверки подлинности.)

Это изменение в поведении относится только к подпискам и развертываниям. которые были созданы после 15 ноября 2017 г.

Статья Microsoft находится здесь: Troubleshoot-outbound-smtp-connectivity

1
ответ дан 8 April 2021 в 21:42

Теги

Похожие вопросы