If you have been developing websites long enough, I know this has happened to you. You build a great site and you test test test and the emails are sending and work great on your development server. As soon as you move it to the live server, nobody is receiving emails from Contact Form 7 and the panic sets in.
If emails were sent and received properly on the development server, the issue is most likely that the clients email server flagging emails as spoofing, and preventing delivery of the email. In plain english, that means that their email server is rejecting the emails from the contact form because it doesn’t recognize the website server as a valid sender for their domain.
To see if this is the issues, try testing the form to see if it delivers to an email address outside of the website domain. If it works, then you will know the client’s mail server is blocking the email.
The quick and dirty way to avoid spoofing filters by changing the 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. It’s also not easy if you don’t have access to the DNS.
The quick and dirty way is to change the send from email to match the WPEngine server alias. For example, you can change the send from email to email@example.com.
To find your wpengine server address, login to WPEngine, click on the environment your site is live on, and click on domains in the side menu. There you should see a domain like yoursite.wpengine.com.
When you go to put this email address in Contact Form 7, it will give you a validation error. That’s ok, it will not prevent your form from working.
Did this work for you? Let me know!