Я пытаюсь настроить Sophos Appliance (SEA) для обработки антиспама. Частью этой службы является проверка получателя, которая опрашивает нижестоящий MTA, в нашем случае Exchange 2010, на предмет действительного получателя.
Похоже, здесь есть проблема, связанная с тем, что Exchange 2010 неправильно обрабатывает конвейерные команды SMTP.
Разговор по SMTP происходит следующим образом:
Escape character is '^]'.
220 <my domain> Microsoft ESMTP MAIL Service ready at Sun, 16 Nov 2014 14:07:15 +1100
EHLO <valid domain>
250-<my downstream server Hello [<an ip>]
250-SIZE
**250-PIPELINING**
250-DSN
250-ENHANCEDSTATUSCODES
250-STARTTLS
250-AUTH
250-8BITMIME
250-BINARYMIME
250-CHUNKING
250-XEXCH50
250 XSHADOW
Затем, чтобы проверить получателя, SEA отправляет следующее в одном пакете (проверяется трассировкой пакетов
MAIL FROM:<a temp but valid email> SIZE=278
RCPT TO:<validrecipient> ORCPT=rfc822;validrecipient
RSET
QUIT
Однако сервер Exchange, похоже, игнорирует первые 3 команды и отвечает только на команду QUIT.
221 2.0.0 Service closing transmission channel
А пока я могу отключить проверку промежуточных получателей, но более насущный вопрос заключается в том, почему Exchange неправильно поддерживает конвейерную обработку. Есть мнение, что RFC2920, раздел 4, предполагает, что никакие параметры не могут быть добавлены к команде MAIL FROM для правильной работы конвейерной обработки.
Интересно, так ли это? Я протестирую это вручную, но было бы неплохо и другие предложения.
Спасибо
Со мной это тоже происходит, отключение конвейерной обработки у меня сработало.
Set-ReceiveConnector "Connector Name" -PipeliningEnabled $false
Для меня отправитель был конвейерным Mail From
, Rcpt To
, затем Data
. Exchange 2010 ответит на Mail From
, Rcpt To
, но нет data
и отправитель получит возврат "Тайм-аут".
Я просто отключил конвейерную обработку на соединителе приема, чтобы обойти это с удовлетворительными результатами. Если я не услышу иное, я буду считать, что это ошибка в реализации конвейерной обработки Microsoft / реализации ESMTP в Exchange 2010.