First thing's first. Let's make sure that we have a valid AUTH tag listed in the connect banner. Connect to the server and issue an EHLO command as follows :
shell> telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.example.com ESMTP
EHLO testing
250-mail.example.com
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 0
250 AUTH LOGIN PLAIN CRAM-MD5
If you see the AUTH line, then your server is broadcasting that capability. Next, let's try connecting and authenticating. First, generate the Base64 string required :
shell> perl -MMIME::Base64 -e 'print encode_base64("\000testuser\@example.com\000mypass")'
AHRlc3R1c2VyQGV4YW1wbGUuY29tAG15cGFzcw==
Next, connect and issue the AUTH command to login :
shell> telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 mail.example.com ESMTP
EHLO testing
250-mail.example.com
250-STARTTLS
250-PIPELINING
250-8BITMIME
250-SIZE 0
250 AUTH LOGIN PLAIN CRAM-MD5
AUTH PLAIN AHRlc3R1c2VyQGV4YW1wbGUuY29tAG15cGFzcw==
235 ok, go ahead (#2.0.0)
If you see the 235 response, then your login has succeeded.