none
Exchange 2007 не дожидается ответа SMTP сервера RRS feed

  • Вопрос

  • Добрый день!

    Возникла проблема с отправкой почты на почтовые серверы под управлением exim (пока данную проблему встретил только на этих MTA):

    пользователь отправляет письмо -> exchange подключается к серверу получателя (устанавливается tcp соединение по 25 порту) -> идет попытка отправки сообщения

    Проблема в том, что есть у exim такая настройка - smtp_enforce_sync, которая ожидает синхронизацию приветствия между серверами, если сервер отправителя не дожидается приветствия, то exim отбрасывает эти сообщения. Exchange не дожидается приветствие и шлет команды SMTP потоком.

    Есть возможность заставить Exchange ожидать приветствие?

    Пример 1. Подключение к серверу exim без ожидания приветствия:

    # telnet mail.example.com 25
    Trying 8.8.8.8...
    Connected to mail.example.com.
    Escape character is '^]'.
    HELO example2.com
    554 SMTP synchronization error
    Connection closed by foreign host.

    Пример 2. Подключение к серверу exim с ожиданием приветствия:

    # telnet mail.example.com 25
    Trying 8.8.8.8...
    Connected to mail.example.com.
    Escape character is '^]'.
    220-mail.example.com ESMTP Thu, 12 May 2016 15:05:59 +0400
    220-.
    220-WARNING: Unsolicited commercial E-Mail (UCE/SPAM), pornographic
    220-material, viruses and relaying is prohibited by this server and
    220-any such messages will be rejected/filtered automatically
    220-depending on content.
    220-.
    220-By using this server, you agree not to send any messages of the
    220-above nature.  Please disconnect immediately if you do not agree
    220-to these terms and conditions.
    220-.
    220-Please contact POSTMASTER if you have any
    220-enquiries about or problems with this server.
    220 .
    HELO example2.com
    250 mail.example.com Hello example2.com [10.10.10.10]
    quit
    221 mail.example.com closing connection
    Connection closed by foreign host.
    • Изменено TechMisha 13 мая 2016 г. 5:12

Все ответы

  • День добрый.

    Несколько вариантов.

    1. Посмотрите настройки коннекторов отправки и получения. Создадите тестовые коннекторы и по тестируете настройки

    Set-SendConnector 
    ForceHELO

    The ForceHELO parameter specifies whether HELO is sent instead of the default EHLO. Valid values are $true or $false. The default value is $false.

    Set-ReceiveConnector

    PipeliningEnabled
     
    The PipeliningEnabled parameter specifies whether the PIPELINING EHLO keyword is advertised in the EHLO response to the remote server and is available for use. Valid values for this parameter are $true or $false. The default value is $true. When the PipeliningEnabled parameter is set to $true, the PIPELINING EHLO keyword is advertised in the EHLO response to the remote server and is available for use. When the PipeliningEnabled parameter is set to $false, the PIPELINING EHLO keyword isn't advertised in the EHLO response to the remote server and is disabled. The PIPELINING extension enables the remote server to send requests without awaiting a response from this Receive connector.


    RequireEHLODomain

    The RequireEHLODomain parameter specifies whether the remote computer must provide a domain name in the EHLO handshake after the SMTP connection is established. Valid values for this parameter are $true or $false. The default value is $false. When the RequireEHLODomain parameter is set to $true, the remote computer must provide a domain name in the EHLO handshake after the SMTP connection is established. If the remote computer doesn't provide the domain name, the SMTP connection is closed.

     

    2. Создать лист исключений для smtp_enforce_sync

    no_enforce_sync

    local_smpt_enforce_sync_exceptions


    MCITP, MCSE. Regards, Oleg

    Модератор
  • Спасибо за ответ!

    По предложенным вариантам:

    1. Set-SendConnector  
    ForceHELO - я в примере telnet указал HELO, так то конечно EHLO.

    Set-ReceiveConnector
    PipeliningEnabled - в моем случае вопрос в ожидании ответа от удаленного сервера, а не наоборот.

    RequireEHLODomain - проблема в обработке не входящего, а исходящего соединения. Т.е. правка параметров ReceiveConnecor тут не поможет, а для SendConnector ничего схожего не нашел.

    2. Эти параметры, я так понимаю, Вы предлагаете настроить на exim? Но это выходит за рамки обслуживания моего почтового сервера и относиться к серверам получателям. 

    P.S.

    Чуть более наглядно о проблеме:

    1. В первом примере не дожидаемся ответа 220, а сразу шлем HELO/EHLO. Exim режет соединение с кодом ответа 554 SMTP synchronization error.
    2. Во втором случае показан диалог между сервером Exim, если ожидать код ответа 220 (соединение не сбрасывается, а предлагается вести дальнейший диалог).

    • Изменено TechMisha 13 мая 2016 г. 6:25
  • Есть еще идея.

    Установил бы все обновление на Exchange 2007. Так как проблем с отправкой на Exim/Postfix/... не встречал очень давно.

    Возможно у вас стоит антивирус на исходящую почту? На время тестирования я его бы отключил.

    Для тестирования поставил бы какой нибудь простой smtp reley и проверил через него отправку с тестового домена.

    Может у вас включена фильтрация исходящих сообщений.

    Set-ContentFilterConfig -InternalMailEnabled $false

    Проверить в blacklist свой домен.

    http://mxtoolbox.com/

    Проверить PTR запись.

    Написать письмо админам домена получателя. Тоже очень часто помогает.


    MCITP, MCSE. Regards, Oleg

    Модератор
  • Да, я таких проблем тоже не припомню. С админом проблемного домена решали всю пятницу данную проблему (за что ему огромное человеческое спасибо) - проблема улетучилась при переходе на другой канал связи с моей стороны, в чем и как мог влиять провайдер на SMTP протокол, я не могу даже предположить.

    Спасибо за участие в решение проблемы!

  • Возможно стоит фильтрация SMTP трафика на FW или у провайдера.

    MCITP, MCSE. Regards, Oleg

    Модератор