Monday, April 23, 2012

Applications are unable to send emails via SMTP in Exchange 2010

Sometimes when you configure an application to send emails via a SMTP connector in Exchange 2010 it will not be able to send them and it will report a connection timeout.
Additionaly, if you enabled protocol loging for the Receive connector you will see in the logs the following record:

Tarpit for '0.00:00:00.902' due to 'DelayedAck',Delivered

This issue is caused by Shadow Redundancy feature from Exchange 2010.

To solve the issue there are two posibilities:

Use the Shell to configure the maximum acknowledgement delay on a Receive connectorUsing powershell run the following cmdlet

Set-ReceiveConnector "Custom App Receive Connector" -MaxAcknowledgementDelay 0
where "Custom App Receive Connector" is the connector that is used for receiveing emails from application,


Shadow redundancy promotion In Microsoft Exchange Server 2010 Service Pack 1 (SP1), instead of skipping the delayed acknowledgement, the transport server can be configured to relay the message to any other transport server in the site. This effectively inserts the message into the shadow redundancy pipeline, thereby protecting the message. This process is called shadow redundancy promotion. This approach minimizes the number of unprotected messages in the organization when compared to the “skipping delayed acknowledgement” method. By default, this feature is disabled. To enable shadow redundancy promotion, follow these steps:

Edit the edgetransport.exe.config file. By default, this file is located in the C:\Program Files\Microsoft\Exchange Server\V14\Bin directory.
In the edgetransport.exe.config file, change the “shadowredundancypromotionenabled” key to true, and then save the changes.
Restart the Microsoft Exchange Transport service (MSExchangeTransport.exe).

1 comment:

  1. Another setting which can affect applications is message throttling policy. More info here:
    http://technet.microsoft.com/en-us/library/hh529935.aspx

    ReplyDelete