web-dev-qa-db-ja.com

Exchange 2010SMTPパイプラインサポートが正しく機能しない

スパム対策を処理するようにSophosAppliance(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は、パイプラインを正しく機能させるためにMAILFROMコマンドにパラメーターを追加できないことを示唆していると考えられます。

いつも夢みてなのかな?私はそれを手動でテストしますが、他の提案は素晴らしいでしょう。

ありがとう

3
danielgo

これを回避するために、受信コネクタのパイプラインを無効にするだけで、満足のいく結果が得られました。特に断りのない限り、Exchange2010でのMicrosoftのパイプライン実装/ ESMTP実装のバグであると想定します。

1
danielgo

これは私にも起こります。パイプラインを無効にすることでうまくいきました。

Set-ReceiveConnector "Connector Name" -PipeliningEnabled $false

私の場合、送信者はMail FromRcpt To、次にDataをパイプライン処理していました。 Exchange2010はMail FromRcpt Toに応答しますが、dataには応答せず、送信者は「タイムアウト」バウンスを受け取ります。

1
user1591770