Skip to main content

Troubleshooting

WordPress contact form emails not arriving

Last updated Fri, Oct 23, 2026

"Is our contact form broken? We haven't had an enquiry in three weeks." In most cases the form is fine. Visitors fill it in, WordPress accepts the submission, and then the notification email fails somewhere between your website and your inbox. Nobody sees an error, so the problem can run for weeks. This article helps you find where the email stops and fix it so it stays fixed.

First: did the form receive the submissions?

Check whether your form plugin stores entries in WordPress:

Form pluginStores entries?
Gravity FormsYes, under Forms, Entries
WPForms (paid versions)Yes, under WPForms, Entries
WPForms LiteNot by default
Contact Form 7No, unless the Flamingo plugin is installed

If entries are there and the emails are not, the form works and delivery is the problem. If you have no stored entries, send a test submission yourself and note the exact time; that is what support will trace.

Why form emails go missing

  1. The website sends mail without authenticating. By default WordPress hands email to the web server to send. Mail providers such as Microsoft 365 and Gmail increasingly reject or quarantine mail that is not authenticated for your domain.
  2. The From address is the visitor's address. Many forms are set to send "from" whoever filled them in. Your website is not authorized to send as someone's Gmail or university address, so the message fails DMARC checks and is rejected or sent to spam.
  3. Your domain's email records do not include the website. If SPF and DKIM do not cover the service the website sends through, your own mail system may treat the message as forged; see SPF, DKIM, and DMARC.
  4. The message is in quarantine. Microsoft 365 and Google Workspace hold suspicious mail in quarantine, which recipients do not see in their junk folder. Your email administrator can check.
  5. The recipient address is out of date. The notification still goes to someone who left, or to a shared mailbox nobody watches.

The fix that lasts

  1. Send through an authenticated service. An SMTP plugin connects WordPress to a proper sending service, such as Amazon SES, Microsoft 365, or Google Workspace, so every message is authenticated for your domain.
  2. Use an address on your domain as the From address, such as website@yourdomain.org, and put the visitor's address in the Reply-To field. Replying still goes straight to the visitor.
  3. Add the sending service to SPF and set up DKIM for it, so the messages pass DMARC.
  4. Turn on entry storage in your form plugin, so a delivery problem never loses an enquiry.
  5. Send a test from each form, and check it arrives in the inbox, not in junk.
  6. Check the recipients on every form notification, and prefer a shared mailbox over one person.

Quick checks you can do now

  • Submit the form yourself and search every recipient's junk folder for it
  • Ask your email administrator to search quarantine and message trace for the time of your test
  • Open the form's notification settings and note the From address and recipients
  • Check whether other site emails arrive, such as password resets and new user notifications; if none do, the site cannot send email at all, not just the form
  • If you use an SMTP plugin, use its "send test email" feature and read any error it shows

Spam versus missing mail

Turning on stronger spam protection, such as a new CAPTCHA, can also stop real enquiries if it is hard to complete. If enquiries dropped right after a change like that, check stored entries and test the form on a phone before looking at email.

Drupal sites

The same causes apply. The Webform module stores submissions by default, so check Structure, Webforms, Submissions first. Sending is configured through a mail module such as Symfony Mailer or an SMTP module, with the same rules for the From address and authentication.

How eWay handles site email

On sites eWay manages, website email goes out through an authenticated sending service such as Amazon SES or your organization's mail relay, rather than straight from the web server. eWay can configure the sending service and the From and Reply-To settings, and give you the exact SPF and DKIM records to add. If eWay manages your DNS, eWay can add them for you.

What to include in a support ticket

  • The form's page URL and the form plugin's name
  • The time of a test submission, and the address it should have reached
  • Whether entries are stored in WordPress
  • Any error from the SMTP plugin's test

eWay customers can open a ticket in the support portal or email support@ewaycorp.com. Related reading: email authentication for your domain and privacy on your website: forms and data retention.

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article

Platform Notes

Get practical WebOps and cloud insights in your inbox

We publish articles on managed operations, cloud infrastructure, CMS platforms, government technology, and security, written by engineers who operate these environments every day. No marketing fluff. Unsubscribe any time.

We respect your privacy. No spam, no third-party sharing. Unsubscribe any time.