Up until a few years ago, domains had both mails and websites set up on the same server.
Things have changed nowadays and many people use custom mail servers like Google, Outlook etc. to handle mails for their domains.
To make this happen, server management tools like cPanel provide a setting called “Remote Mail Exchanger”.
But setting up “Remote Mail Exchanger” is not intuitive to many website owners, and they often face mail bounces or mail errors due to misconfiguration of this setting.
As part of our Outsourced Technical Support for web hosts, we routinely resolve such email errors.
Today let’s go through the top two issues we’ve seen while setting up a Remote Mail Exchanger.
How things go wrong with cPanel Remote Mail Exchanger
In cPanel servers, there is an option called “Email routing” which decides how mail is handled for a domain.
By default, new accounts created on the server have mails handled by the same server.
But when the domain need to use another server for mail, the email routing has to be set as “Remote Mail Exchanger”.
Here’s how Email Routing is set for a domain in cPanel servers.
Mail server tries to send mails to another server after checking the Remote Mail Exchanger setting for the domain.
Listed below are the situations where mails fail due to this setting.
1. Remote Mail Exchanger not set
To enable external mail servers for a domain, website owners simply set the custom mail servers (MX) records for the domain.
Unfortunately, that is not enough for mails to show up in the external mail servers.
Mails from website forms or other domains hosted on the same server still fail. This happens as the mail server tries to deliver the mails within the server.
To fix the problem, our Support Engineers set the correct email routing as per the MX records of the domain.
Also we ensure that the correct values are present in the mail server configuration files like /etc/localdomains and /etc/remote domains as well.
2. Incorrect value for Remote Mail Exchanger
Cpanel maintains two domain lists :
- Domains whose mails are on the same server
- Domains whose mails are on remote server.
When we change email routing for a domain, cPanel automatically adjusts these lists.
For example, when we set Remote Mail Exchanger for a domain, cPanel removes domain from local domains list and automatically adds to remote domains list.
But this may not work always due to bad server settings.
And when a customer wants to change their domain’s MX to a different provider, say Google, he will set MX in dns records and change email routing to “Remote Mail Exchanger”. Normally, this is enough for mails to show up at Google.
But if for some reason cPanel fails to remove this domain from the local domains list, mail server will still try to deliver all mails from other domains on the same server locally. This will result in email error “Recipient Not Found” as the original recipient exists at Google.
In such cases, for mail to work properly, our Support Engineers do the following :
- Set mail routing to “Remote Mail Exchanger”
- Remove entries for the domain from the list of local domains
- Add the domain to the list of remote domains
Conclusion
Wrong setting of the cPanel Remote Mail Exchanger can cause mail issues for the domain. We’ve discussed two causes our Support Engineers often see in the servers that we manage and how we fix them.
Thanks for the reminder – always a good thing to check when having email issues. Routing can be challenging.
You are welcome.
Great article. Where is the list of local domains? I believe I need to edit one manually, as cPanel does not seem to be obeying the “remote mail” setting.
Thank you Gary.
To edit the list of local domains you need to access the file /etc/localdomains. For that you must access the terminal using SSH access.