スパム対策を処理するように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コマンドにパラメーターを追加できないことを示唆していると考えられます。
いつも夢みてなのかな?私はそれを手動でテストしますが、他の提案は素晴らしいでしょう。
ありがとう
これを回避するために、受信コネクタのパイプラインを無効にするだけで、満足のいく結果が得られました。特に断りのない限り、Exchange2010でのMicrosoftのパイプライン実装/ ESMTP実装のバグであると想定します。
これは私にも起こります。パイプラインを無効にすることでうまくいきました。
Set-ReceiveConnector "Connector Name" -PipeliningEnabled $false
私の場合、送信者はMail From
、Rcpt To
、次にData
をパイプライン処理していました。 Exchange2010はMail From
、Rcpt To
に応答しますが、data
には応答せず、送信者は「タイムアウト」バウンスを受け取ります。