When testing out Web or Mail servers, I often find myself telneting to the server and issuing raw commands directly. Doing this is incredibly useful for tracking down the source of many problems. Until now, I have never know how to do the same thing over encrypted channels like HTTPS or POP3S. However, I just discovered that the openSSL library has a simple tool that works great. Run the command:
openssl s_client -connect hostname:port
That will perform all of the SSL handshake and display the output for you, and then give you a regular prompt, just like telnet would. For SMTP over TLS it is a little more complicated because you generally would connect to the remote server and then issue the STARTTLS command to negotiate encryption. In that case, you could use the command:
openssl s_client -starttls smtp -crlf -connect host:port
That will tell the openssl client to connect, and send ‘STARTTLS’ before attempting to negotiate the encryption. After that, you’ll end up with a 220 response at which to proceed with your normal SMTP session
Modern versions of openSSL also allow STARTTLS with pop3:
openssl s_client -starttls pop3 -connect host:port
Reading your post reminded me of a post I had been meaning to write on plain smtp auth, it’s somewhat related:
http://www.utahsysadmin.com/2007/08/15/testing-smtp-auth-through-telnet/
Kevin