The short answer
A contact form that submits fine but never delivers email is almost always a deliverability problem, not a broken form. Most WordPress sites send mail through PHP's built-in function, which spam filters distrust, so the messages get silently dropped or junked. The real fix is to send through authenticated SMTP or an email API instead of PHP mail.
Key takeaways
- The form usually works; the email delivery is what's failing.
- PHP's default mail function is the most common reason messages disappear.
- Check your spam folder and the address the form actually sends to first.
- The durable fix is an SMTP plugin or an email sending service, not PHP mail.
- Test after every change, because this failure is silent and loses leads.
If people submit your contact form, see a success message, and you never get the email, the form probably isn't broken. The problem is almost always delivery. Most WordPress sites hand outgoing mail to a basic PHP function that spam filters have learned to distrust, so the message gets silently dropped or dumped in a junk folder before it ever reaches you. This is one of the most expensive website problems precisely because it's invisible: no error, just leads that quietly never arrive.
| Cause | How common | The tell |
|---|---|---|
| PHP mail() gets filtered or blocked | Most common | Form says 'sent' but nothing arrives, even in spam |
| Email landing in spam / junk | Common | Messages are arriving, just not in your inbox |
| Wrong recipient address in the form | Common | A typo or old address in the form's notification settings |
| Plugin conflict or update broke the form | Occasional | It stopped working right after an update |
| SMTP settings misconfigured | Occasional | You set up SMTP but a password or port is wrong |
Do these two-minute checks first
Before changing anything, rule out the simple stuff. Search your spam and junk folders, and any filters or rules that might be auto-sorting the messages. Then open your form's settings and confirm the notification is going to an address you actually check, spelled correctly. A surprising number of "broken" forms are just sending to an old address or a mistyped one. Finally, submit the form yourself as a test and watch whether anything lands.
Understand why PHP mail fails so often
Out of the box, WordPress and most form plugins send email using PHP's mail() function. The trouble is that mail sent this way usually isn't authenticated. It comes from your web server, which often isn't a recognized sender for your domain, so it fails the checks (SPF, DKIM, DMARC) that inboxes use to decide what's legitimate. The result is that Gmail, Outlook, and the rest either junk it or reject it outright, silently. This isn't a bug in your form. It's how modern email deliverability works, and PHP mail was never built for it.
Fix it by switching to SMTP or an email API
The real, durable fix is to stop using PHP mail and send through an authenticated service instead. There are two common routes, and both make your form's email look like it came from a legitimate sender:
- 1An SMTP plugin. Free plugins like WP Mail SMTP route your outgoing mail through a proper mailbox (your Google Workspace or Microsoft 365 account, for example) using a real username and password. The mail is then authenticated and lands reliably.
- 2A transactional email service. Services built for sending, such as SendGrid, Mailgun, Postmark, or Amazon SES, connect through an API key and are designed for high deliverability. This is the sturdier option for busy sites, and it also gives you logs so you can prove a message was sent.
Either way, the key is authentication. Once your form sends through a service that's allowed to send for your domain, the messages stop vanishing. Just as important, turn on email logging if your setup offers it, so you have a record of every submission even if delivery ever hiccups again.
Always test again after you change anything
Because this failure is silent, the only way to trust a form is to test it. After configuring SMTP or an API, submit a real entry and confirm it lands in your inbox, not spam. Then test again after any plugin or theme update, because an update is a common way a working form quietly breaks. If you take email submissions seriously, put a monthly form test on your calendar. Better yet, use a form that also stores entries in your dashboard, so a delivery failure never means a lost lead.
When to bring in a professional
Installing an SMTP plugin is genuinely doable for most owners, and if that fixes it, great. Where it gets tricky is DNS: setting up SPF, DKIM, and DMARC records so your domain's mail is trusted everywhere is fiddly, and mistakes there can affect all your email, not just the form. If you've tried SMTP and messages still don't land, or you're not comfortable editing DNS records, that's the point to hand it to someone who does this regularly rather than risk breaking your business email.
How we make sure your leads actually arrive
A form that silently eats leads can cost a small business real money for months before anyone notices. On our maintenance plans, starting at $99 a month, we set forms up to send through authenticated email, keep a log of every submission, and test them as part of routine care so a stray update never quietly takes your inquiries offline. We're based near Seattle and handle site edits within one business day, so if a form issue does surface, it's fixed fast, not sitting in a queue.
Related services
More website answers
Every question in this series, from Website Problems, Solved.
Symptoms & emergencies19
- Why Is My Website Down? How to Find Out and Fix It
- Why Does My Website Say "Account Suspended"?
- Error Establishing a Database Connection: What It Means
- Why Is My Contact Form Not Sending Emails? (you are here)
- White Screen of Death on WordPress: What to Do Now
- Why Is My Website Showing "Not Secure" in Chrome?
- Squarespace Site Not Showing Up on Google? Here's Why
- Why Did Google Remove My Website From Search Results?
- Why Did My Website Traffic Suddenly Drop? Top Causes
- Why Is My Website Sending Spam Emails? What It Means
- Why Is My Website Slow on Mobile but Fast on Desktop?
- Why Does My Website Look Broken on My Phone?
- Why Do My Website Images Look Blurry or Broken?
- How to Tell If Your Website Has Been Hacked: 9 Signs
- "This Site May Be Hacked": How to Remove Google's Warning
- "Deceptive Site Ahead" Warning: How to Fix It Fast
- How to Make Your Website Load Faster
- Why Isn't My Business Showing Up on Google?
- 10 Signs Your Business Website Needs a Redesign
What happens if...9
- What Happens If You Don't Update WordPress Plugins?
- What Happens If Your SSL Certificate Expires?
- What Happens If Your Domain Name Expires? A Timeline
- What Happens If Your Web Host Goes Out of Business?
- What Happens If You Stop Paying Your Web Developer?
- Can an Old Website Hurt Your Google Ranking?
- Is an Outdated Website a Liability for Your Business?
- Why Are My Business Emails Going to Spam?
- What Happens If You Don't Maintain Your Website?
Cost & pricing7
- How Much Does It Cost to Fix a Hacked WordPress Site?
- Why Is Website Maintenance So Expensive? A Breakdown
- Hourly Rate vs. Monthly Retainer for Website Updates
- How Much Do Freelancers Charge for Website Maintenance?
- How Much Does WordPress Maintenance Cost Per Month?
- How Much Does Squarespace Maintenance Cost?
- How Much Does Website Maintenance Cost?
Plans & hiring10
- Do I Need a Website Maintenance Plan? An Honest Answer
- Maintenance Plan vs. Pay As You Go: Which Actually Wins
- One-Time Website Fix vs. Ongoing Care: Which Do You Need
- Does a Simple Website Need a Maintenance Plan?
- 12 Questions to Ask a Website Maintenance Company
- Freelancer vs. Agency for Website Maintenance
- What to Look For in a Website Maintenance Contract
- Is Your Website Maintenance Plan a Scam? How to Tell
- Website Maintenance Checklist for Non-Technical Owners
- What Does Website Maintenance Include? (And Why It Matters)
Ownership & switching9
- What Is My Website Built With? How to Check in Seconds
- How to Find Out Who Hosts and Manages Your Website
- Your Web Developer Disappeared: What to Do Now
- How to Switch Web Hosting Without Losing Your Email
- How to Fire Your Web Developer (Without Losing Your Site)
- Can You Maintain Your Own Website Without Coding?
- How Often Should You Update Your Website Content?
- How to Back Up a WordPress Site Yourself (Two Ways)
- Do You Really Own Your Website? How to Check Before You Hire
Platform-specific7
- Do Squarespace Sites Need Maintenance? The Honest Answer
- Do Wix Websites Need Maintenance? What Owners Should Know
- Shopify Maintenance: What Store Owners Actually Need
- WordPress Maintenance Checklist for Non-Developers
- WordPress vs. Squarespace: Which Is Easier to Maintain?
- GoDaddy Website Builder vs. WordPress for Small Business
- How to Keep Your WordPress Website Secure
The Venbit Team
Web design & SEO, Seattle
Venbit is a Seattle-area web design, SEO, and digital marketing studio. Since 2011 we've designed, built, and ranked small-business websites for clients across the Puget Sound and around the country, so the numbers and advice here come from real projects, not a content mill.