This article assumes you have access to telnet and openssl. The example tests have been run against a Microsoft Exchange 2010 server. The IP and hostname have been obfuscated. The commands needed to perform these protocol access tests will be the same on both Linux and Windows.
Testing SMTP
Test using plain text
Execute the following command to initiate a plain text connection over port 25.
telnet smtp.server.com 25
Example output
The following is the typical output you’ll see as a response from a SMTP server. In this case being Microsoft Exchange 2010.
Trying 74.161.5.111... Connected to smtp.server.com. Escape character is '^]'. 220 smtp.server.com Microsoft ESMTP MAIL Service ready at Thu, 3 May 2012 13:06:21 +0200
Test using an encrypted connection
Execute the following command to initiate an encrypted connection over port 25.
openssl s_client -starttls smtp -crlf -connect smtp.server.com:25
Parameters
Beneath you’ll see the documentation for the parameters used in the above example.
-starttls protocol send the protocol-specific message(s) to switch to TLS for communication. protocol is a keyword for the intended protocol. Currently, the only supported keywords are "smtp", "pop3", "imap", and "ftp".
-crlf this option translated a line feed from the terminal into CR+LF as required by some servers.
Example output
There’s little to see here mainly because I had to exclude the certificate verification information to anonymize the test server.
<certificate verification output> 250 CHUNKING
Tip: You may run the usual SMTP commands directly from the command prompt after you initiated the encrypted connection.
Testing IMAP
Test using plain text
Execute the following command to initiate a plain text connection over the standard IMAP port 143.
telnet imap.server.com 143
Example output
The following is the typical output you’ll see as a response from an IMAP server. In this case being Microsoft Exchange 2010.
Trying 74.161.5.111... Connected to imap.server.com. Escape character is '^]'. * OK The Microsoft Exchange IMAP4 service is ready.
Test using an encrypted connection
openssl s_client -connect imap.server.com:993
Example output
<certificate verification output> * OK The Microsoft Exchange IMAP4 service is ready.
Testing POP3
Test using plain text
telnet pop.server.com 110
Example output
The following is the typical output you’ll see as a response from a POP server. In this case being Microsoft Exchange 2010.
Trying 74.161.5.111... Connected to pop.server.com. Escape character is '^]'. +OK The Microsoft Exchange POP3 service is ready.
Test using an encrypted connection
openssl s_client -connect pop.server.com:995
Example output
<certificate verification output> +OK The Microsoft Exchange POP3 service is ready.
References
SMTP – Simple Mail Transfer Protocol
IMAP – INTERNET MESSAGE ACCESS PROTOCOL
POP 3 – Post Office Protocol – Version 3
The OpenSSL Project
// CrashMAG