A common issue with WordPress Contact Form 7 and GoDaddy is not receiving emails. There are two things to consider here.
- The email routing configuration is set correctly to send emails from your website server
- Your email service provider flagging emails as spoofing, and preventing delivery of the email.
First, let’s address issue 1.
Configuring cPanel to work with 3rd party Mail Services
When you use cPanel, you have the option of creating email accounts directly on the server. You would do this by logging into cPanel, clicking on email accounts, and creating the account there. These accounts are accessible through IMAP or POP3 connections. If this is how your email is setup, you are likely not having any issues receiving emails.
However, if you are using a third party mail service like gmail business email or Microsoft Office365 email, you will have to make sure the email routing is set correctly by doing the following:
- Login to cPanel (yourdomain.com/cpanel)
- Click on Email Routing
- Check off the option for Remote Mail Exchanger
- Click on Change.
Now your website server is set to deliver mail using the mx records set that direct to your third party mail servers.
Test your contact form configuration and see if it works. If your contact form isn’t working and it’s set to deliver to an email address @ the same domain as your website, try testing the form to see if it delivers to an email address outside of the website domain. If it works, then you need to address issue 2 – the mail server may be blocking the email for spoofing.
Avoiding Spoofing Filters by changing Send From Email
The correct way to avoid spoofing filters is to set an SPF record for the IP address of the website in the DNS for the domain. While this can work, it’s not always fool proof depending on how tight the security is on the mail server.
So this option explores instead how to change the domain the email is originating from.
As you know, in Contact Form 7 they validate your form to make sure the send from email address matches the website domain. There is one work around here. If you are using GoDaddy Linux hosting with cPanel, go back to your test email you sent to the email address outside of the domain. You should see something like this:
The address highlighted in yellow is the server address (blurred for privacy). You can also find it by logging into GoDaddy and finding your hosting product, and clicking on the cPanel Admin button. It will open your cPanel on this server url (instead of using yourdomain.com/cpanel).
If you enter the send from email address in Contact Form 7 using this server address as the domain (e.g. firstname.lastname@example.org) then it won’t be caught for spoofing, and should deliver to email addresses that use your website’s domain name.
I have also had luck using this on WPEngine by using their server aliases (e.g. email@example.com) in the Send From email with Contact Form 7.
Did this work for you? Let me know!