Home/Blog/WordPress Fixes
WordPress Fixes

Why Your Contact Form Isn't Sending Emails

By Christy Sparks
Published Apr 18, 2026
7 min read

Your contact form is on the page. It looks right. Someone fills it out, clicks submit, and sees the confirmation message. But the email never arrives in your inbox. This is one of the most common and most damaging WordPress problems because it is completely invisible until someone tells you they have been trying to reach you.

The good news is that the cause is almost always one of a handful of known issues, and every one of them is fixable. Here is what is happening and how to fix it.

Losing leads to a broken form?

This is a perfect Quick Fix project. We will diagnose the issue, configure proper email delivery, and verify every form on your site is working.

Fix My Forms →

SMTP vs PHP Mail: The Root of the Problem

When your WordPress form sends an email, it uses PHP's built-in mail() function by default. This is the most basic method of sending email, and on most modern hosting servers, it is unreliable. Many hosts throttle it, filter it, or block it entirely to prevent spam abuse.

The solution is SMTP (Simple Mail Transfer Protocol), which sends your emails through a real email server instead of your web server. Think of it this way: PHP mail is like taping a note to a passing car and hoping it reaches the destination. SMTP is like handing it to the postal service.

What to do: Install WP Mail SMTP or a similar plugin and configure it to send through a real email service: your hosting provider's SMTP server, Gmail, Google Workspace, SendGrid, or Mailgun. This single change fixes the problem for about 70% of sites with missing form emails. For more detail, see our post on Contact Form 7 email issues.

DNS Records: SPF, DKIM, and DMARC

Even with SMTP configured, your emails can still be rejected or sent to spam if your domain's DNS records are not set up correctly. Three records matter:

SPF (Sender Policy Framework) tells receiving email servers which servers are authorized to send email on behalf of your domain. Without it, your email looks suspicious.

DKIM (DomainKeys Identified Mail) adds a cryptographic signature to your emails that proves they were not tampered with in transit.

DMARC (Domain-based Message Authentication) tells receiving servers what to do when SPF or DKIM checks fail: deliver the email, quarantine it, or reject it.

What to do: Log into your domain registrar (GoDaddy, Namecheap, Cloudflare, etc.) and check your DNS records. If SPF, DKIM, and DMARC records are missing, add them. Your email provider or SMTP service will have the specific values you need. Use MXToolbox to verify your records are configured correctly.

Spam Filters Eating Your Notifications

Sometimes the emails are sending successfully but your email provider is filtering them into spam or junk. This is especially common with Gmail, which has aggressive filtering, and with Microsoft 365, which can quarantine messages without notification.

What to do: Check your spam and junk folders. If form notification emails are there, mark them as "not spam" and add the sending address to your contacts. If you are using a shared hosting SMTP server, the IP address may have a poor reputation from other sites on the same server sending spam. Switching to a dedicated email service like SendGrid or Mailgun resolves this.

Not sure where to start?

DNS records, SMTP configuration, and spam filter troubleshooting can feel overwhelming. We set these up for clients regularly and can have your emails working reliably in one session.

Get Email Delivery Fixed →

Plugin Settings Misconfiguration

Sometimes the issue is in the form plugin itself. Check these settings in your form plugin (Contact Form 7, WPForms, Gravity Forms, or whichever you use):

  • "To" address: Make sure it is the email where you want to receive submissions. This sounds obvious, but typos here are surprisingly common.
  • "From" address: This should be an email on your domain (wordpress@yourbusiness.com), not a free email like Gmail. Many email servers reject messages where the "From" address does not match the sending domain.
  • "Reply-To" address: Set this to the form submitter's email if you want to reply directly to leads.
  • Notification toggle: Some form plugins have a notification on/off switch that can be accidentally turned off.

reCAPTCHA Issues

Google reCAPTCHA protects your forms from spam bots, but misconfigured reCAPTCHA can prevent real submissions from going through. If your reCAPTCHA keys are expired, incorrect, or configured for the wrong domain, the form may silently fail after submission.

What to do: Temporarily remove reCAPTCHA from your form and test whether submissions arrive. If they do, the issue is your reCAPTCHA configuration. Generate new keys from the Google reCAPTCHA admin console, making sure to add the correct domain. Reinstall the keys and test again.

Form Notification vs Form Submission

It is important to understand that the form submission and the email notification are two separate processes. The form can submit successfully (the data is captured) while the email notification fails. If you are using a form plugin that stores entries in the database (WPForms Pro, Gravity Forms, Ninja Forms), check the entries screen in your dashboard. If entries are there but emails are not arriving, the problem is exclusively email delivery, not the form itself.

If you are using a form plugin that does not store entries (Contact Form 7, WPForms Lite), you have no fallback. Every missed email is a missed lead. This is why we always recommend either using a form plugin that stores entries or ensuring your SMTP configuration is bulletproof.

Hosting Mail Limits

Many shared hosting providers limit the number of emails your site can send per hour or per day. If your site sends marketing emails, WooCommerce order notifications, user registration emails, and form notifications all through the same server, you can hit these limits and form notifications get queued or dropped.

What to do: Check your hosting provider's email sending limits. If you are hitting them, move transactional emails to a dedicated service like SendGrid or Mailgun, which are designed for high-volume sending and are not subject to your hosting provider's limits.

Practical Testing Steps

Before you change anything, test systematically:

  • Submit a test entry through your form. Check your inbox, spam, and junk folders.
  • Install WP Mail SMTP and use its email test feature. It sends a test email and tells you if delivery succeeded or failed.
  • Check your form plugin's entry log (if available) to see if submissions are being captured even when emails are not arriving.
  • Try sending to a different email address (Gmail, Outlook, Yahoo) to rule out recipient-side filtering.

If your test email from WP Mail SMTP fails, the error message will tell you exactly what went wrong. That error message is your roadmap to the fix.

Every missed email is a missed lead

We will diagnose the delivery problem, configure SMTP and DNS records, and test every form on your site. Flat price, no hourly billing.

Fix My Contact Forms →

Frequently Asked Questions

Q: Why did my contact form stop sending emails suddenly?

The most common trigger is a change on your hosting server: a PHP update, a security policy change, or a mail server configuration change. Your hosting provider may have made changes without notifying you. Installing SMTP resolves this regardless of the cause.

Q: Do I need an SMTP plugin for every WordPress site?

Effectively, yes. PHP mail is unreliable on most modern hosting. If your site sends any emails (form notifications, password resets, order confirmations), an SMTP plugin is essential for reliable delivery.

Q: How do I know if my form emails are going to spam?

Check your spam and junk folders across all email accounts that receive form notifications. Also ask a friend to submit a test form using their email to verify the auto-responder (if you have one) is also reaching recipients' inboxes.

Q: What is the best SMTP plugin for WordPress?

WP Mail SMTP is the most popular and the one we use most frequently. FluentSMTP and Post SMTP are also reliable alternatives. All of them connect to the same email services. The plugin matters less than the SMTP configuration behind it.

Q: Can SPF and DKIM records break my regular email?

If configured incorrectly, yes. SPF records that are too restrictive can block legitimate email. Always test email delivery after making DNS changes. If you are not comfortable editing DNS records, this is one to delegate to someone who does it regularly.

Q: My form works on my computer but customers say it does not work for them. What is happening?

This is usually a JavaScript conflict, a reCAPTCHA issue, or a browser compatibility problem. Test the form in multiple browsers (Chrome, Safari, Firefox, Edge) and on mobile devices. Check the browser console for JavaScript errors. A caching plugin serving stale JavaScript is another common cause.

Q: How many leads am I losing if my form is broken?

There is no way to know exactly, but consider this: if your form has been broken for a month and you normally get 10 form submissions per month, those 10 potential customers contacted a competitor instead. The cost of fixing a form delivery issue ($175 for a Quick Fix) is trivial compared to the revenue lost from even a few missed leads.

← Back to All Posts