Skip to main content

Using Telnet to troubleshoot your mail system

Telnet is old school, but it's still a handy tool for troubleshooting email and other services.
Image
Using telnet to troubleshoot email
"July 11, 2018" by osseous is licensed under CC BY 2.0

For this article, I use example.com as the domain name for mail servers and email addresses. In addition, I use the standard ports of 25 for SMTP and 110 for POP3.

The first thing you’ll need to do is install Telnet if it is not already present. (Telnet is not automatically installed on all systems in favor of the more secure SSH protocol.) To install Telnet on a Red Hat Enterprise Linux-based system, type:

$ yum install telnet

Testing an SMTP mail server

Now that you have Telnet installed, you’re ready to start. Let’s first verify that your SMTP server is available by connecting to it via Telnet with the following command:

$ telnet mail.example.com 25

Once connected, you will receive a response similar to the following:

Image
Telnetting into the email server.

Initiate the connection with the SMTP service by using the following command:

ehlo smtp.example.com

The response looks like this:

Image
ehlo output

You are now ready to send an email. Start by telling the system what email address the mail is coming from:

mail from: admin@example.com

The system will then acknowledge that the information is in the correct syntax, in the same format used in the previous image.

Image
The mail server's response to ehlo.

Next, tell the system the recipients’ email address or addresses with the following command:

rcpt to: user1@example.com 

The system acknowledges that the information is in the correct syntax, as follows:

Image
The recipient's email address is valid.

Tell the system that you are beginning the body of your email by typing data as follows:

data

The system will respond with a single dot (.) on its own line, which ends the email headers:

Image
Email headers complete.

Now, set the subject and write the email’s content. Then, tell the system to send the email by using the dot (.) as follows:

subject: test

Test that your email addresses are working properly.

Thanks,

SysAdmin
.

The system then reports that the email was accepted for delivery:

Image
Email accepted.

Exit the session by typing quit, which disconnects us as shown here:

Image
Session closed.

Testing a POP mail server

Now, check the configuration of your POP3 service, which is provided by Dovecot. The first step is to connect to the server over POP3, which is served on port 110:

$ telnet mail.example.com 110

Once connected, you will receive a response similar to the following:

Image
Connecting to the POP mail server.

Next, provide the information for the user account you’re accessing. In this case, verify that user1 received the email you just sent them:

user user1

You see that the username is correct with:

Image
The user user1 received the email.

Next, use the following command to authenticate using the user’s password:

pass xxxxxxxx

If the user and password are correct, the authentication is confirmed as follows:

Image
Userpass output

 

To check and see what mail is available, use the list command:

 

list

This command returns a list of all email for that user, and the size of that email, as shown below (it does not return any other information). 

Image
The list command's results.

To read an email, we need to use the retr command, which is short for retrieve:

retr 1

In this case, you asked to retrieve email number one, which as you can see is the email you sent directly via SMTP through Telnet:

Image
Reading an email.

As this was a test email, delete it from the system using the dele command, as follows:

dele 1

Here you can see that the system responds that the mail is marked as deleted:

Image
Deleting the email.

Run the list command again. You can see that there is no longer any email:

Image
The user now has no email.

As with the SMTP services, we can type quit to exit:

Image
Disconnecting from the server.

Wrapping up

You can tell a lot by using Telnet to perform basic email server testing. Whether you’re using POP or SMTP, experiment with this process when things are going well so you can see when things go wrong.

What to read next

Topics:   Networking   Linux  
Author’s photo

Amy Marrich

Amy Marrich is the Open Source Community and Global Training Manager at O.A.T and previously was the OpenStack Instructor at Linux Academy, a Linux System Engineer on the Platform Engineering Cloud Operations team at Rackspace. More about me

Related Content

OUR BEST CONTENT, DELIVERED TO YOUR INBOX