Here’s a nasty one: the contact form looks fine, visitors get a “thanks, message sent” — and nothing ever reaches your inbox. Businesses lose leads for weeks before noticing. The cause is almost always the same.
The real problem: WordPress email isn’t real email
By default, WordPress sends mail through the web server’s built-in PHP mail function — with no authentication at all. To Gmail and Outlook, that looks exactly like spam, so they bin it or reject it silently. Your form is working; the delivery is failing.
The fix: send through SMTP
- Install an SMTP plugin (WP Mail SMTP is the standard).
- Connect it to a real mailbox — your domain email via your host, or a transactional service like Brevo or Mailgun.
- Send the test email from the plugin’s settings page.
This one change fixes the overwhelming majority of “form not sending” cases.
Also check these
- The recipient address — in your form settings. It’s surprisingly common to find an old employee’s email in there.
- Spam folder and quarantine — especially with Microsoft 365, check the quarantine portal, not just Junk.
- Domain alignment — sending “from” your own domain? Make sure your domain has SPF and DKIM records set up. Your host or IT person can add these in minutes.
- Form spam filters — an over-aggressive reCAPTCHA or honeypot can silently discard legitimate messages.
Test it monthly
Email delivery rots quietly: hosts change servers, DNS records get edited, plugins update. Send yourself a test through the form once a month — or have a maintenance plan that does it for you. A lost lead costs more than a year of maintenance.