The worst website failure is the silent one: the contact form looks fine, says “Thanks, we’ll be in touch,” and delivers nothing. Businesses discover it weeks later — usually when a customer mentions “I tried your form” — after a month of leads evaporating. Here’s why WordPress email breaks, why it breaks silently, and the fix that ends it permanently.
A broken contact form doesn’t look broken. It looks like a quiet month — right up until you learn it wasn’t quiet.
Why WordPress email is fragile by design
Out of the box, WordPress sends mail through PHP’s mail() function — the server just flings the message into the world with no authentication, no delivery confirmation, and no error reporting. To Gmail and Outlook, a message from a random shared server claiming to be from your domain looks exactly like spam, because that’s precisely how spam is sent. Sometimes it lands in inboxes, sometimes in junk, sometimes nowhere — and WordPress reports success in every case, because “success” only means the server accepted the handoff.
Why it breaks after working fine
The frustrating pattern — “it worked for two years!” — has mundane triggers. Your host migrates you to a new server with a worse IP reputation. Another site on your shared server gets flagged for spam, poisoning the shared IP. Gmail and Microsoft tighten authentication rules (the 2024-era requirements made unauthenticated mail dramatically less deliverable). Or your domain’s DNS records changed during some unrelated update and the fragile arrangement collapsed. Nothing on your site changed; the world around the shortcut did.
The real fix: authenticated SMTP
Stop sending mail like spam and start sending it like mail. An SMTP plugin routes your form messages through a real, authenticated mail service — your business email account or a transactional provider — so receiving servers see verified, reputation-backed mail instead of anonymous server output. Setup is a plugin (WP Mail SMTP and its peers), your mail service’s credentials, and one test send. Pair it with correct SPF and DKIM records on your domain — your mail provider lists the exact DNS entries — and deliverability problems drop to near zero.
Belt and suspenders: never rely on email alone
Even fixed pipelines deserve a backup, because leads are too expensive to trust to one channel:
Store every submission in the database
Most form plugins can save entries in the WordPress admin. Even if an email vanishes, the lead exists somewhere you can see.
Test the form monthly
A real submission through the live form, confirmed received — thirty seconds that catches silent failures within days instead of months. It’s a standing item on my maintenance checklist for exactly this reason.
Add a notification fallback
A second recipient address, or a WhatsApp/SMS ping on submission, means one broken channel never equals zero notice.
If it’s broken right now
Check the form plugin’s stored entries first — the leads are probably sitting there, recoverable. Send a test to a Gmail address and check the spam folder; if it’s landing in junk, SMTP plus SPF/DKIM is your fix. If nothing arrives anywhere, your host may be blocking mail functions entirely — five minutes with their support confirms it, and authenticated SMTP bypasses the block anyway. An hour of setup ends the whole category of failure — cheap insurance for the form your entire website funnels into.