Some things are strange about this issue. First, hMailServer checks the return values for all Windows API calls that has to do with TCP/IP and Windows doesn't return any errors. Secondly, it only happens for SMTP, even though it's the same code that handles SMTP as POP3 and IMAP.
Since it only happens with SMTP connections, I think it has something to do with how the connections are closed. POP3/IMAP connections are almost always disconnected properly by the client, while SMTP connections are often disconnected improperly, for example by spammers.
I've done the following changes in this build:
- I've simplified the code that disconnects timeouted clients. hMailServer no longer says "Goodbye" to clients before disconnectnig them. It's likely that a client which has timed out has lost to the connection to hMailServer, and then it doesn't matter whether hMailServer sends a goodbye or not.
- When a socket is being closed, hMailServer now explicitly tell Windows how it should be done. Previous builds relied on Windows to close the socket the "default way".
So I appreciate if you upgrade to this build, turn on logging and send the logs to me at martin@hmailserver.com if the problem occur.

Build available here:
http://dev.hmailserver.com/hMailServer-4.3-B227.exe