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.

20 essential Linux commands for every user

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:

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:

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.

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:

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:

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:

Email accepted.

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

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:

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:

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:

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). 

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:

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:

Deleting the email.

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

The user now has no email.

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

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.


About the author

Amy Marrich is a Principal Technical Marketing Manager at Red Hat. She previously worked at a small open source e-assessment company in Luxembourg, where she was the Open Source Community and Global Training Manager.  Previously, she was the OpenStack Instructor at Linux Academy and a Linux System Engineer on the Platform Engineering Cloud Operations team at Rackspace. She currently serves on the OpenStack Board, is an active member of the Openstack Ansible project, and was previously the chair of the OpenStack User Committee. Amy spends her free time competing in performance events (agility, FASt Cat, and dock diving) with her Dalmatians and competing in dressage with her Connemara pony.

UI_Icon-Red_Hat-Close-A-Black-RGB

Browse by channel

automation icon

Automation

The latest on IT automation for tech, teams, and environments

AI icon

Artificial intelligence

Updates on the platforms that free customers to run AI workloads anywhere

open hybrid cloud icon

Open hybrid cloud

Explore how we build a more flexible future with hybrid cloud

security icon

Security

The latest on how we reduce risks across environments and technologies

edge icon

Edge computing

Updates on the platforms that simplify operations at the edge

Infrastructure icon

Infrastructure

The latest on the world’s leading enterprise Linux platform

application development icon

Applications

Inside our solutions to the toughest application challenges

Virtualization icon

Virtualization

The future of enterprise virtualization for your workloads on-premise or across clouds