Microsoft KB Archive/818222

= Messages remain in an outbound queue until a non-delivery report is generated when you send e-mail to a remote domain =

Article ID: 818222

Article Last Modified on 10/25/2007

-

APPLIES TO


 * Microsoft Exchange Server 2003 Standard Edition
 * Microsoft Exchange Server 2003 Enterprise Edition
 * Microsoft Exchange 2000 Enterprise Server
 * Microsoft Exchange Server 2000 Service Pack 3

-





Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
When you send e-mail messages to certain external domains, they may remain in an outbound queue on the Microsoft Exchange Server 2003 or Microsoft Exchange 2000 Server computer until a non-delivery report (NDR) is generated.

Additionally, the following event may appear in the Application log in the Event Viewer on a Microsoft Internet Security and Acceleration Server 2000-based server that is configured as a firewall for the remote domain:

Date:    date          Source:   SmtpEvt Time:    time          Category: None Type:    Error           Event ID: 20031 User:    N/A Computer: computername

Description: An unknown SMTP command

Data: 0000: 58 45 58 43 48 35 30 20   XEXCH50 0008: 31 30 32 30               1020



CAUSE
This issue may occur if a firewall blocks the binary large object (BLOB) data following the Microsoft Exchange Server XEXCH50 command.



WORKAROUND
To work around this issue, use one of the following methods.

Method 1: Configure the XEXCH50 Registry Subkey
In Exchange Server 2003 and Exchange Server 2000 Service Pack 3 (SP3), you can suppress the sending of the XEXCH50 command to external domains. To do so, follow these steps.

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.  Click Start, click Run, type regedit in the Open box, and then click OK. Locate the following registry subkey:

 

Note If the XEXCH50 registry subkey is not present, create it. To do this, point to New on the Edit menu, and then click Key. In the New Key #1 box, type XEXCH50, and then press ENTER. Right-click XEXCH50, point to New, and then click DWORD Value. In the New Value #1 box, type SuppressExternal, and then press ENTER. Right-click SuppressExternal, and then click Modify.</li> In the Value data box, type 1, and then click OK.</li> Quit Registry Editor.</li></ol>

Method 2: Configure the SMTP Connector
Configure the SMTP connector properties to use the HELO command instead of the EHLO command. When Exchange Server sends the HELO command, it does not receive the list of commands that the remote server supports, and reverts to simple SMTP commands. None of the extended SMTP command verbs are used.

To configure the SMTP connector, follow these steps:
 * 1) Start the Exchange System Manager utility.
 * 2) If Administrative Groups are turned on, expand Administrative Groups, and then expand First Administrative Group.
 * 3) Expand Connectors, right-click the SMTP connector that you use to connect to the remote domain, and then click Properties.
 * 4) Click the Advanced tab, click to select the Send HELO instead of EHLO check box, click Apply, and then click OK.

<div class="moreinformation_section">

MORE INFORMATION
The following steps outline the process that occurs when an Exchange Server 2003 or Exchange 2000 Server-based server tries to send mail to a host over the Internet: <ol> It performs the equivalent of an Nslookup for the MX (mail exchanger) record of the remote domain.</li> It opens a TCP/IP connection to port 25 of the remote host.</li> It receives a banner from the remote host.</li> It sends an EHLO command followed by the local domain name to the remote host.</li> It receives a list of supported commands from the remote host.</li> It sends a MAIL FROM command followed by the e-mail address of the sender.</li> It receives an acknowledgement from the remote host.</li> It sends one or more RCPT TO commands followed by one or more recipient e-mail address.</li> It receives one of the following acknowledgements: <ul> One acknowledgement after a batch of RCPT TO commands if the remote host supports PIPELINING.

-or-</li> One acknowledgement for each recipient.</li></ul> </li> If the remote host advertised support for the XEXCH50 command, the Exchange server sends the XEXCH50 command followed by the number of bytes that it intends to transfer, and then the numeral 2. For example, the following command indicates that the Exchange server intends to send 1124 bytes of data:

XEXCH50 1124 2

</li> It receives a 354 message from the remote host permitting it to send the data.</li> The Exchange server sends the number of bytes of data that it specified in step 10 of this process.</li> <li>When the data has been sent, the Exchange server expects the remote host to immediately respond with an acknowledgement.

If there is no more mail to send, the Exchange server sends a QUIT command.</li> <li>The Exchange server receives an acknowledgement of the QUIT command from the remote host.</li> <li>The Exchange server ends the session.</li></ol>

The issue described in this article occurs when the Exchange server does not receive the expected acknowledgement after transmitting the data associated with the XEXCH50 command. A firewall may be configured to block the binary large object (BLOB) data that follows the XEXCH50 command.

<div class="references_section">