Missed Form Alert

Missed Form Alert / Guides

WordPress forms · email

Not receiving contact form emails in WordPress: the two causes

One of two things happened. Either the message was stopped before any email was sent, usually by a spam filter, or the email was sent and never reached you, usually because of how the server sends mail. They need different fixes, so find out which one first. Submit the form yourself, read what it says afterwards, and check whether the site kept a copy of the message. A blocked message shows up in your spam filter's log. A delivery problem shows up as a message the site accepted but you never received.

Last checked 27 Sep 2026

Tell them apart

What you seeMost likely cause
Your own test works, but some customers say they got an errorBlocked by a spam filter
The customer saw a message ending in "Anti-Spam by CleanTalk"Blocked by CleanTalk
The message is in your filter's spam log, or Flamingo's spam listBlocked by a spam filter
The form says thank you, the entry is saved on the site, but no emailEmail not delivered
Your own test doesn't arrive eitherEmail not delivered (or a filter blocking everything)
The email arrives, but in your junk folderEmail delivery

One trap with Contact Form 7: its default message after a spam block and after a failed email is the same, "There was an error trying to send your message. Please try again later." You can't tell the two apart from the front end. Flamingo records which status each submission got: mail_sent, mail_failed or spam.

Cause 1: the message was blocked before any email

Spam filters stop the submission, so no email is ever created. Nothing reaches your inbox or your junk folder. Often the site keeps no copy either: Contact Form 7 stores nothing without Flamingo, and CleanTalk keeps its log on cleantalk.org rather than on your site.

  1. Find out which filters are on the form. Check your plugins for CleanTalk, Akismet, OOPSpam, Maspik, a captcha or Turnstile, and the form's own anti-spam settings.

  2. Look in each one's log or spam list for the missing message. CleanTalk keeps 7 days in its dashboard.

  3. Mark the real message as not spam, and fix the specific rule that caught it. Guides: CleanTalk, Akismet, Contact Form 7.

Cause 2: the email was sent and never delivered

Form plugins hand the email to WordPress's wp_mail(). WordPress's own documentation is clear that a successful call "does not automatically mean that the user received the email successfully". It only means the request was processed without errors. After that, delivery is up to the server and your email provider.

  1. Check the recipient address in the form's mail or notification settings for typos and extra spaces.

  2. Set the From address to one on your site's own domain. WPForms' guide warns that a From address on another domain, like @gmail.com, can get notifications flagged as spam.

  3. Send mail through an SMTP plugin connected to a real email service. WPForms' guide names the server's built-in PHP mailer as a major cause of undelivered notifications.

  4. Check the junk folder of every recipient.

  5. If emails fail outright, WordPress fires a wp_mail_failed action with the error. Most SMTP and mail-log plugins record it for you.

A third place messages go missing

Some submissions never reach WordPress at all. A firewall such as Cloudflare or your host's security rules can stop the request, and a captcha that doesn't load can stop the visitor from submitting. Nothing on the site sees these, so check your firewall's event log if the other two don't explain it.

If you'd rather be told automatically

Missed Form Alert is a WordPress plugin we're building. It keeps a copy of every submission that reaches your site, before any spam filter acts on it. If your filter blocked one that looks like a real enquiry, or the notification email failed to send, it emails you the message.

It works next to CleanTalk, Akismet or whatever you already use, and it never blocks anything itself. Contact Form 7 and WPForms for now. It's free during early access. See how it works.

Questions

Why am I not receiving emails from my WordPress contact form?
Either a spam filter stopped the message before any email was sent, or the email was sent and not delivered, usually because the server's mail set-up is unreliable. Submit a test, check your spam filter's log, and check whether the site saved the message.
How do I know if a spam filter blocked a contact form message?
Look in the filter's log or spam list: the CleanTalk dashboard, or Flamingo's spam list for Contact Form 7. A blocked message never becomes an email, so it won't be in your junk folder.
Does wp_mail returning true mean the email arrived?
No. WordPress's documentation says it only means the request was processed without errors. Delivery happens after that and can still fail.
How do I fix WordPress form emails not being delivered?
Use a From address on your own domain, send through an SMTP plugin connected to a real email service instead of the server's built-in mailer, and check the recipient address and junk folders.

Related