How To Fix: WordPress Mail Not Sending To Email on Same Domain
Mail sent through WordPress (using forms) won’t send to email accounts using the same domain as the web site.
I have several clients who use external mail servers /email addresses set up by their IT people. Their web sites are both on the WordPress platform on GoDaddy hosting. Using Contact Form 7, form mail would NOT deliver to anyone in-house using an email address on the same domain as the web site. Mail would, however, successfully send to recipients if their email was not using the same domain as the web site. This was a real head scratcher because everything was set right on the forms and on the DNS records for the mail server. So here’s the trick! The IT guy for one of my clients discovered that the MX records for the hosting should be changed in the cPanel. Since both clients use external mail and their DNS for mail is pointing away from the host, I would have thought the mail was using that external server. Well, apparently, the forms on the web site need to be told what to do with themselves via the hosting cPanel. Since my 2 clients with this issue both use GoDaddy hosting, my screenshot below is from GoDaddy’s cPanel. This probably works on other hosts too.
- Open GoDaddy cPanel and scroll down to the Email Section.
- Click on “Email Routing”
- Change the setting for “Configure Email Routing” to “Remote Mail Exchanger”
- Click the blue “Change” button.
- Now test your form and see if your client now receives the form mail at their inbox.
For both of my clients with this issue, changing the email routing to “Remote Mail Exchanger” on GoDaddy’s hosting cPanel fixed the mail issues immediately. Now both clients successfully receive the form mail sent through WordPress.
Note: This is not the same issue that Contact Form 7 always reminds you of – where you should use an email address of the same domain the web site is on for the FROM field on your forms. It’s a related issue but is not the solution to the problem above. The FROM field should be an email address of the same domain as the web site AND you should also set the “Email Routing” in the hosting cPanel to use “Remote Mail Exchanger” if using an external mail server (meaning you are not using email accounts within the hosting plan and instead have pointed the mail records in the DNS away from the hosting plan).