The most common cause of missing contact form notifications is a form configured to send as the visitor who filled it in.
It is an intuitive setting. Putting the enquirer's address in the From field means you can hit reply. Many form plugins default to it, and it worked for years.
It fails now, and the reason is worth understanding rather than working around: your web server is sending a message claiming to come from someone@gmail.com, and it is not authorised to send as Gmail. The receiving server checks, finds no authorisation, applies that domain's published policy — and increasingly that means rejection rather than filtering.
The fix is two fields. The rest of this article covers the fix and the other four causes worth checking.
The fix
From should be your own domain. Reply-To should be the visitor.
| Field | Wrong | Right |
|---|---|---|
| From name | The visitor's name | Your site name, or the visitor's name is fine here |
| From address | visitor@gmail.com |
forms@yourdomain.com |
| Reply-To | Not set | visitor@gmail.com |
You still get one-click reply, because Reply-To is what a mail client uses when you press reply. The message now authenticates, because it comes from a domain you control and can sign for.
Where this lives varies by plugin — usually the notification or mail settings for each individual form, under the message headers or advanced section. Check every form on the site. Sites accumulate forms, and the newsletter signup configured two years ago is still sending as whoever signed up.
Use a From address that exists. Bounce messages go there, and a form address you never check is a form you learn nothing from when it breaks.
Why it changed
Unauthenticated mail used to be delivered with a shrug.
Since February 2024, Gmail and Yahoo have required all senders to authenticate, and the major consumer providers have been tightening enforcement of published domain policies. When a domain says "reject anything that fails", receivers increasingly do exactly that.
So the same form, unchanged, stops working. Nothing on your site broke. What changed is enforcement, which is why this problem tends to appear suddenly on a site nobody has touched. What the requirements actually say.
The other four causes
1. WordPress is not sending at all
Install an email logging plugin and submit a test. Nothing in the log means the form never generated a message — a validation failure, a broken submission handler, or a spam filter silently discarding it before the notification stage.
Check the plugin's own submission log too, if it has one. A form that records submissions but generates no email narrows the problem to the notification step immediately.
2. PHP mail is failing silently
Without an SMTP plugin, WordPress hands messages to PHP mail(), which often fails on modern hosting and reports success either way.
This is the underlying cause on a large share of sites, and the From address problem is layered on top of it. Fixing the headers on a site still using PHP mail improves nothing. Why WordPress email fails by default · Setting up SMTP properly.
3. The notification address is wrong
Check what address the form sends to, not just what it sends as. Common findings:
- An address belonging to someone who left
- The site's default admin address, which nobody monitors
- A typo
- A distribution list that quietly stopped forwarding
Send a test to yourself as the first check, because it separates "the form does not send" from "the form sends somewhere I do not read".
4. It is arriving in spam
Form notifications are unusually spam-like by nature. They contain text a stranger wrote, often with links, arriving automatically at a predictable interval.
Check spam before rebuilding anything. Then, if that is where they are, the fixes are the ordinary ones — authenticate properly, send from a domain with reputation, and stop sending as other people's domains.
Making the notification useful
Two settings that are not about delivery and are worth changing while you are in there.
Put something identifying in the subject. New submission from Contact Form on a site with six forms tells you nothing. Contact form — [subject field] is filterable and searchable.
Include the submitted fields in the body, not just a link back to the dashboard. A notification that requires logging in to read is a notification that gets read late.
If forms matter to the business
Three things worth having.
Store submissions in the database, using a plugin that records them independently of the email. Email is a notification, not a record — when delivery fails you still have the enquiry, and that alone justifies the plugin.
Send form mail through the same authenticated service as the rest of the site, rather than letting the form plugin use its own SMTP settings. Two sending paths mean two authentication states and intermittent failures.
Test quarterly. Submit a form, confirm arrival, and check it did not land in spam. This failure is silent by construction — a form that stops notifying looks exactly like a form nobody has filled in.
Frequently asked questions
Why are my contact form emails not arriving?
Most often the form is configured to send as the visitor's email address, which means your server sends mail claiming to be from a domain it is not authorised to send for. That fails authentication and is increasingly rejected. Put your own domain in From and the visitor's address in Reply-To.
Can I use the visitor's email as the From address?
No, and it is the default in several plugins. Your server is not authorised to send as gmail.com or any other provider, so the message fails that domain's policy checks. Reply-To gives you the same one-click reply without the authentication failure.
Why did my contact form stop working when nothing changed?
Enforcement changed rather than your site. Gmail and Yahoo required all senders to authenticate from February 2024, and providers have been enforcing published domain policies more strictly since. A form that sends as the visitor was always unauthenticated; it is now being acted on.
Do I need an SMTP plugin for contact forms?
Effectively yes. Without one WordPress uses PHP mail(), which fails frequently on modern hosting and reports success regardless. Fixing the From address on a site still using PHP mail does not solve delivery on its own.
Where do I set Reply-To in a contact form plugin?
In the notification or mail settings for each individual form, usually under message headers or an advanced section. Check every form on the site rather than only the main contact form — older forms are usually the misconfigured ones.
Should I store form submissions in the database?
Yes if enquiries matter. Email is a notification, not a record, and a stored submission survives the notification failing. It also lets you confirm whether a missing enquiry was never submitted or was submitted and never notified.
The short version
- Open each form's notification settingsOpen each form's notification settings
- Set the From addressSet the From address to a real mailbox on your own domain.
- Set Reply-ToSet Reply-To to the visitor's email field.
- Check the recipient addressCheck the recipient address is one you actually monitor.
- Install an SMTP pluginInstall an SMTP plugin and route form mail through the same authenticated service as the rest of the site.
- Install an email logging pluginInstall an email logging plugin
- Submit a testSubmit a test and confirm it appears in the log and arrives.
- Check the spam folderCheck the spam folder before changing anything else.
- Add an identifying subject lineAdd an identifying subject line and include the submitted fields in the body.
- Enable database storageEnable database storage of submissions.
- Retest quarterlyRetest quarterly
The WordPress Email Delivery Checklist
Stop your WordPress emails from failing silently. Get the complete setup guide.

Muhammad Basim has worked in digital marketing since 2013, focused on email deliverability and AI-assisted content production. He is the author of the Email Deliverability Playbook and the Email Copywriting Playbook, and has run 100+ email campaigns for ecommerce brands, coaches, and B2B senders. He writes about email, SEO, WordPress, and AI — with a bias toward what can be tested over what sounds good.
Related Articles
WordPress Email: Why Your Site’s Emails Never Arrive
WordPress sends email in a way that fails modern authentication by default, and it reports success while doing it. That combination is why this problem is so persistent. The site is not broken. Nothing is logged. wp_mail() returns true, the order is placed, the form says thank you — and the message never reaches an […]
WordPress Sitemaps, Properly Configured
You already have a sitemap. WordPress has generated one in core since version 5.5, served at /wp-sitemap.xml, with no plugin required. And you may not need it. Google's own threshold: you might not need a sitemap if "Your site is 'small'. By small, we mean about 500 pages or fewer on your site" and it […]
WordPress SEO: What the Platform Decides for You
WordPress makes a set of SEO decisions for you at install, before you write anything. Four of them are wrong for most sites, and none of them is fixed by a plugin. That is the useful frame for this subject, because "WordPress SEO" is usually presented as a plugin choice, and the plugin is the […]