Alex Harris

Marketing Lead

Alex Harris

Marketing Lead

Contact Form 7 Not Sending Email? Here Are 9 Fixes That Actually Work

Contact Form 7 Not Sending Email? Here Are 9 Fixes That Actually Work

Your Contact Form 7 form looks fine. It renders. Visitors can fill it out and hit submit. They even see the success message.

But you're not receiving anything.

No emails in your inbox. No submissions in your CRM. Nothing.

This is one of the most common WordPress problems, and one of the most frustrating — because CF7 gives you almost no feedback when something goes wrong. No error logs visible to the user. No bounce notification. Just silence.

Here's what's actually causing it, and how to fix it.

Want a faster diagnosis? Try the free CF7 email troubleshooter — it walks you through the most common causes step by step, no account required.

Why Contact Form 7 Stops Sending Emails

Before jumping to fixes, it helps to understand where the chain breaks.

When someone submits a CF7 form, here's what happens:

  1. WordPress receives the POST request

  2. CF7 processes the form data

  3. WordPress (via PHP mail() or an SMTP plugin) attempts to send the email

  4. Your server's mail system hands it to a mail transfer agent

  5. The MTA delivers it to the recipient's inbox

The failure can happen at any of those steps. Most CF7 "not sending" issues happen at steps 3 or 4 — which is why the form appears to work from the user's side but you never receive anything.

Fix 1: Stop Using PHP mail() — Switch to SMTP

This is the root cause in the majority of cases.

By default, WordPress uses PHP's built-in mail() function to send emails. Most modern hosting environments either disable it, rate-limit it heavily, or route it through a configuration that major email providers treat as spam.

The fix: Install an SMTP plugin and connect it to a real mail service.

Good options:

  • WP Mail SMTP (most widely used, reliable free tier)

  • FluentSMTP (free, no upsells)

  • Post SMTP

Connect it to Gmail (via app password), SendGrid, Mailgun, or Brevo. Any of these is more reliable than the default mail() setup.

After configuring, use the plugin's built-in test email feature to confirm it's actually working.

Fix 2: Check Your CF7 Mail Settings

Go to Contact → your form → Mail tab.

Things to verify:

  • To field: Is the recipient email address correct? Check for typos.

  • From field: The "from" address must match your domain or your SMTP sender. Using no-reply@yourdomain.com when your SMTP is configured for you@gmail.com will cause delivery failures.

  • Reply-To: Optional but useful — set this to the [your-email] field so you can reply to submissions directly.

A mismatch between the "From" address in CF7 and the sender your SMTP plugin is authenticated as is a very common misconfiguration.

Fix 3: Check If Emails Are Going to Spam

Before spending an hour troubleshooting delivery, check your spam folder.

Also check:

  • Your email provider's "All Mail" or archived mail

  • Any spam filtering rules in Gmail, Outlook, or your email client

  • If you use Google Workspace, check the Admin console for quarantined messages

If emails are arriving but landing in spam, the fix is usually updating your domain's SPF and DKIM records — or switching to a proper SMTP service (Fix 1).

Fix 4: Identify Plugin Conflicts

Security and firewall plugins are the second most common cause of CF7 failures after SMTP issues.

Plugins known to interfere with CF7:

  • Wordfence (can block form POST requests)

  • iThemes Security / Solid Security

  • Cloudflare (with aggressive security settings)

  • WP Cerber

  • Some caching plugins that intercept POST requests

How to test: Temporarily deactivate your security plugin and submit a test form. If it works, you've found your conflict. Re-enable and adjust the plugin's settings to whitelist CF7's form submission endpoint.

Fix 5: Check Your Hosting's Email Sending Limits

Shared hosting plans often impose hourly or daily limits on outgoing email. Once you hit the limit, emails silently fail — no error, no bounce, nothing.

Check your hosting control panel (cPanel, Plesk, etc.) for email sending stats. If you're hitting limits, the fix is the same as Fix 1: route through an external SMTP service instead of relying on your host's mail system.

Fix 6: Disable CF7's Spam Filtering Temporarily

CF7 has built-in spam filtering that can silently discard legitimate submissions.

Under Contact → Integration, check whether Akismet is connected. If it is, test with a submission that would clearly pass (your own name, a real email address, realistic message content).

You can also check CF7's Additional Settings tab for any custom spam-related configurations.

If you suspect Akismet is the culprit, temporarily disconnect it, submit a test, and see if delivery works.

Fix 7: Test With a Different Recipient Email

Sometimes the issue is delivery to a specific inbox, not a sending failure.

Try changing the To address in your CF7 mail settings to a Gmail address (or a different domain entirely) and submit a test. If it arrives at the Gmail address but not your usual one, the problem is on the receiving end — check spam settings, inbox rules, or contact your email provider.

Fix 8: Check for a Recent WordPress or Plugin Update

CF7 failures often follow a WordPress core update, a CF7 update, or an update to a security or caching plugin.

If you can pinpoint when submissions stopped arriving, check what changed around that time. WordPress has a basic update log under Dashboard → Updates, but you'll get more detail from a plugin like WP Activity Log.

Roll back the suspect plugin temporarily (using a version from the WordPress plugin repository) and test.

Fix 9: Reinstall Contact Form 7

If you've worked through the above and still can't identify the cause, a clean reinstall sometimes resolves corrupted configuration or file issues.

Deactivate and delete CF7, then reinstall from the WordPress plugin directory. Your form configurations are stored in the database, so they should persist — but take a note of your mail settings before you start just in case.

The Deeper Problem: You Shouldn't Have to Manually Test This

All of the above fixes address the immediate issue. But there's a bigger problem underneath.

Forms break without warning. A WordPress update drops, a plugin conflicts, a hosting configuration changes — and submissions stop arriving. You have no way of knowing unless you're actively testing or a visitor tells you.

For a single site that you check regularly, manual testing is manageable. For agencies running 20, 30, or 50 client sites, it's not.

This is what FormDoctor is for.

FormDoctor submits your forms on a schedule — like a real user — using a headless browser. It verifies the whole chain: form submission, server processing, email delivery. If something breaks, you get an alert before your client does.

Start monitoring your forms free →

Setup takes about 3 minutes. No code changes, no plugin to install. If you want to explore all the free diagnostic tools available, visit the FormDoctor tools page.

Quick Reference: Most Common CF7 Email Fixes

Problem

Fix

Not sending at all

Switch to SMTP (Fix 1)

Landing in spam

Fix SPF/DKIM or switch to SMTP

Wrong email address

Check CF7 Mail tab settings

Stopped after update

Check for plugin conflict

Hosting limit hit

Use external SMTP

Works on test, not live

Check Akismet / spam filters

Still stuck? The CF7 email troubleshooter can help you pinpoint the issue without working through each fix manually.

Experience peace of mind with Form Doctor

Integrates seamlessly with any website.

Experience peace of mind with Form Doctor

Integrates seamlessly with any website.