Skip to content
Nigel Metheringham edited this page Nov 29, 2012 · 2 revisions



The Windows mailer SENDFILE.EXE sometimes hangs while trying to send a message to Exim 4, and eventually times out. It worked flawlessly with Exim 3. What has changed?


Exim 4 sets an obscure TCP/IP parameter called TCP_NODELAY. This disables the "Nagle algorithm" for the TCP/IP transmission. The Nagle algorithm can improve network performance in interactive situations such as a human typing at a keyboard, by buffering up outgoing data until the previous packet has been acknowledged, and thereby reducing the number of packets used. This is not relevant for mail transmission, which mostly consists of quite large blocks of data; setting TCP_NODELAY should improve performance. However, it seems that some Windows clients do not function correctly if the server turns off the Nagle algorithm. If you are using Exim 4.23 or later, you can set

tcp_nodelay = false

This stops Exim setting TCP_NODELAY on the sockets created by the listening daemon.