Fix contact form emails that never arrive
You find out the hard way: a customer rings, cross that they filled in your form three weeks ago and heard nothing. It sent fine on screen. It just never reached your inbox.
Where it hurts
Most website contact forms send mail the cheap way, straight out of the web server using PHP's built-in mail function. That mail has no proper sending identity, so Gmail and Outlook increasingly treat it as suspicious and drop it in spam or bin it outright. Nothing errors. The visitor sees a tidy 'thank you' message and assumes you'll be in touch.
The maddening part is the silence. There's no bounce, no warning, no red flag on your side. A form can sit broken for months while you wonder why the website has gone quiet, and every lost enquiry is a job that went to someone who answered.
When it does get looked at, the cause is usually one of a handful of things: PHP mail with no authentication, missing or wrong SPF and DKIM records, a plugin conflict, or a 'from' address that doesn't match your domain so the receiving server rejects it.
What I'd build
I'd route your form through a proper authenticated sending service instead of raw PHP mail, so every submission arrives with a real, trusted identity behind it. On WordPress that usually means an SMTP plugin pointed at Microsoft 365, Google Workspace or a dedicated sender, with SPF and DKIM lined up to match. Then I add two safety nets: a logged copy of every submission stored on the site (so even a failed email leaves a record you can read), and a simple monitor that alerts me if the form stops sending, so a silent failure can't run for months again. I'll send a few test enquiries through the whole path to prove they land in the right inbox, not spam.
What changes
- Enquiries actually reach your inbox, reliably, from a trusted sending identity
- A stored log of every submission, so nothing is lost even if an email fails
- Monitoring that flags a broken form quickly instead of after a quiet month
- The form checked end to end, including that it clears spam filters
Related fixes
Sound like your week? The free half-hour review is where we work out whether this is your first fix or your fifth.