Submitting an e-mail message to a Microsoft Exchange Server is significantly slower than expected, where each message submission can take up to 10 seconds to complete. This problem does not occur when submitting messages to other types of mail servers, including earlier versions of Exchange Server.
The Microsoft Exchange server has an anti-spam feature called “tarpitting” which will reduce the overall rate at which an unauthenticated client session can submit messages and inhibits attempts to probe the server for valid recipient addresses. This is accomplished by the server waiting for a configurable period of time (by default, 5 seconds) before it will respond to the client after certain commands are issued.
To determine if your Exchange server has tarpitting enabled, you can use the management shell to issue the following command:
get-ReceiveConnector | select name,tarpitinterval
The value returned will indicate the tarpit interval. Note that the maximum interval period is 10 seconds. To disable tarpitting on the server, issue the command:
set-ReceiveConnector "Receive Connector Name" -tarpitinterval 00:00:00
While this will eliminate the delays between message submissions, it can expose your server to directory harvesting attacks if it is accessible over the Internet. It is recommended that you consider implementing authentication in your application because authenticated client sessions are not limited by the tarpit interval. For more information on how to enable authentication, refer to the documentation for the SocketTools component being used.
The tarpit feature was added in Exchange Server 2003, but was not enabled by default.
This issue can affect any SocketTools component that uses the Simple Mail Transfer Protocol (SMTP) to submit e-mail messages for delivery. The problem is not related to the performance of the component itself, but rather the configuration of the server that governs the rate at which the client application can submit messages.
To resolve this problem, take one of the following steps:
1. Connect via the submission port (587) and authenticate the client session. By default, the Exchange server will not attempt to restrict the number of message submissions for an authenticated session. This is the recommended solution.
2. Change the server configuration to eliminate or reduce the “tarpit” interval which is used. By default, this time period is 5 seconds but may be set to as high as 10 seconds per message. Note that this requires administrative access to the server and may expose the server to directory harvesting attacks if it is accessible over the public Internet.
3. Use an alternate server that does not impose a restriction on the rate at which messages are submitted for delivery. Although this article is specific to the Microsoft Exchange server, it is important to note that other types of SMTP servers can be configured to impose similar limitations.