Setting Up and Troubleshooting SMTP in cPanel
When you host your email on your domain with an SMTP server, you are in control. You can choose an email address to suit your business or personal brand. All the data is stored privately on a server or hosting account only you can access. If you want to move to a different hosting provider, there’s nothing to stop you because you aren’t locked-in to a hosted service.
So why don’t more people host their own email? It’s often because setting up an email server without help is fiendishly complicated. You have to learn all about SMTP, IMAP, Exim, mail routing, and more. However, if you use cPanel & WHM, you will have the tools you need to quickly set up and connect to email accounts over SMTP. For most cPanel users, sending mail via their server is as simple as creating an email account and configuring their favorite app.
In this article, we’re going to show you how to do just that. We’ll walk you through the process of setting up an email account and show you how to configure your apps with cPanel’s SMTP settings. We’ll also take a look at some of the most common errors and how to fix them.
What is SMTP?
SMTP is the Simple Mail Transfer Protocol, the communication protocol that applications use to send email over the internet to servers. When you hit “send” in your email app—whether it’s Apple Mail®, MicrosoftOutlook®, Thunderbird®, or any other email client—it contacts a server, authenticates, and attempts to deliver the contents of its outbox. The server the app sends mail to is called the outgoing mail server, and the software it connects to is called a mail transfer agent (MTA).
The MTA on the server takes the messages from the app, puts them in a queue, and then sends them to the recipient’s MTA, which delivers it to their inbox. cPanel has an integrated mail transfer agent called Exim, and, like all MTAs, it uses SMTP to communicate with mail clients and other MTAs. That’s why MTAs are sometimes called SMTP servers.
For the most part, cPanel users don’t have to configure Exim or worry about SMTP’s intricacies because cPanel takes care of the nitty-gritty details. However, you may have to tweak configuration settings if you or your users experience email errors.
Before we get to troubleshooting, let’s take a look at the basics of setting up an email account on your server and configuring your email client to send messages to the MTA over SMTP.
How to Set Up SMTP in cPanel
The cPanel SMTP set-up process involves two steps:
- Create an email account on the server.
- Enter the account’s server and authentication information in the email client.
First, let’s create a new email account. In cPanel, navigate to the Email Accounts interface, which you will find in the main page menu’s Email section.
Click the “Create” button.
On the next page, select a domain, a username, and a password. Click Create at the bottom of the page, and cPanel will generate a new account.
The next job is to configure your client so it knows which server to connect to and how to authenticate. The cPanel SMTP settings you need are available in the Connect Devices interface.
On this page, you will find the username and the URL and SMTP port number of the outgoing server. These are the details you will need to give to your app.
We strongly recommend using the more secure SSL/TLS details rather than the insecure Non-SSL settings.
There are many mail clients out there, but the process of configuring them to send via your server is usually straightforward. For example, here are links to the set-up documentation for Apple Mail on macOS and Thunderbird.
Troubleshooting Common SMTP Errors in cPanel
All being well, you can now send messages from your personalized address via your server. However, email is complicated, and it’s not unusual for misconfiguration to cause authentication or mail delivery issues.
SMTP errors often present themselves as undelivered messages. You try to send an email and get a quick response with an inscrutable error message and a number. In the remainder of this article, we’re going to look at how you or your hosting provider can fix a couple of the most common errors.
Error 421 – Too Many Concurrent SMTP Connections
Exim limits the number of SMTP connections it allows at the same time to stop the server being overwhelmed, but on a busy server, the default cPanel setting of 100 concurrent connections might be too low.
The limit is controlled by the “smtp_accept_max” directive in Exim’s configuration file. You can change this value in WHM by navigating to the Exim Configuration Manager under Service Configuration in the sidebar menu.
Select the Advanced Editor tab and search for “smtp_accept_max.” Adjust the value upwards, but be aware that too many SMTP connections can cause the mail server to run out of memory and crash.
Error 550 – Please Turn on SMTP Authentication in Your Mail Client
When your mail client wants to send messages, it has to supply authentication credentials over a secure connection. If anyone could connect and send messages, your server would quickly become a haven for spammers, so the client has to prove that it is a legitimate sender for that account.
You get an Error 550 message when something goes wrong with the authentication process. There are a few potential causes of this error.
Misconfigured SMTP Client Authentication
Most commonly, Error 550 is caused by either a misconfiguration in the email client or a client so old it doesn’t know how to establish a secure SMTP connection. This is the likely culprit if only one or a handful of users experience the error.
The best way to fix it is to use a modern client with correct authentication details. If that’s not possible, WHM includes a settings tweak to allow SMTP connections from users who have previously authenticated with POP or IMAP, the protocols used to collect messages from the server.
Navigate to the Tweak Settings interface, which is under Server Configuration in the WHM sidebar menu. Search for “Pop-before-SMTP” and activate the tweak.
Incorrect Email Routing for the Domain
If someone gets a 550 error when they try to send a message to an account hosted on your server, there is probably something wrong with the domain’s routing configuration. Typically, this is because the domain is configured to use a remote mail exchanger instead of the one on your server.
To make sure emails for the domain use the local mail exchanger, navigate to Edit MX Entry in DNS Functions in the WHM sidebar menu. Choose the relevant domain and click Edit. Verify that Local Mail Exchanger is selected.
Another potential cause is misconfigured MX records for the domain. These are the DNS records that indicate where mail for a domain should be delivered. You can use the “dig” command-line tool to check if they point to the right IP address.
In this example, we use dig to see where the MX records for our domain point, and then to verify that the domain name record includes the expected IP address.
We have covered the most common causes of 550 errors, but there are a couple of less likely culprits, which you can read about in our SMTP authentication error troubleshooting tutorial.
Take Control of Your Email with cPanel
Email is essential to your brand identity and a vital link to your customers and colleagues. When you host your own email, you are in control of your brand and your data. With cPanel & WHM, setting up and managing a private email account couldn’t be easier.
As always, if you have any feedback or comments, please let us know. We are here to help in the best ways we can. You’ll find us on Discord, the cPanel forums, and Reddit.