I’ve been checking the configuration of an Exim mailserver recently; from another server I could connect to the mailserver on port 25 and manually verify addresses. However, using PuTTY on a Windows boxen resulted in immediate “554 SMTP Synchronization Error” messages being shown in PuTTY before the connection was closed. (Protip: set your PuTTY windows to never close on session end; as PuTTY defaults to this, the error message was eluding me for a few minutes).
Checking exim’s rejectlog showed this for all the PuTTY connections:
2012-06-08 11:27:12 SMTP protocol synchronization error (input sent without waiting for greeting): rejected connection from H=mypc.rdns.tld [188.8.131.52]:58772 I=[remote.mail.server.ip]:25 input=”Ã¿Ã»\037Ã¿Ã» Ã¿Ã»\030Ã¿Ã»’Ã¿Ã½\001Ã¿Ã»\003Ã¿Ã½\003″
Evidently PuTTY, even in Telnet mode, is sending raw control characters to the server which Exim’s balking at. So, if you’re using PuTTY, enable Raw mode when connecting on Port 25 (and/or 587, depending on your MTA config). And, in your defaults, in the Session section choose “Close window on exit: Never” then save the settings in the Default Settings preset. Happiness will ensue.