Websites

Why your contact form is not sending you enquiries, and how to fix it.

When a form breaks, nobody gets an error message: the enquiries stop arriving and nobody is told. This guide follows one enquiry from the send button to your inbox, checks each place it can stop, and sets up a stored copy and a weekly test so the next failure shows the same day.

Updated 29 October 2026, about 8 minutes to read

The short answer

Send a test from your phone and follow it. If the form shows an error or nothing happens, the page or its script is broken. If it says thank you but no email arrives, check the notification address, then your spam and quarantine folders, then how the site sends mail: many sites send from the web server with nothing proving the mail is from your domain. Fix it, and keep a stored copy of every enquiry.

Where an enquiry can stop

An enquiry passes through six places between the send button and the person who answers it, and it can stop at any of them:

  • The page: the form and its script, including any spam check.
  • The website: the form plugin or builder that receives the entry, stores it if set to, and writes the notification email.
  • The notification settings: which address it goes to, and which address it claims to come from.
  • The sending: the website's own mail function, or a proper mail service.
  • The receiving mail server: your email provider, which can accept the message, file it as spam, hold it in quarantine or refuse it.
  • Your inbox: rules, forwarding and filters on the mailbox itself.

What the person filling in the form sees tells you where to start. An error, or nothing happening, points at the page. A thank-you message with no email points further down the line, because the website accepted the enquiry and lost it on the way to you.

Send one test and follow it

Do this from your phone on mobile data, the way a customer would:

  • Use an email address that is not the one the form sends to, such as a personal Gmail.
  • Put the time and the word test in the message, so you can search for it later.
  • Note exactly what the page does after you press send: an error, a thank-you message or nothing.
  • Check whether the website kept a copy: look in your site builder's dashboard for a list of form submissions, or in the WordPress form plugin's entries, if it keeps any.

If the copy is in the website but the email never arrived, the form works and the email is failing. If there is no copy and no email, the problem is in the form itself.

If the form shows an error or does nothing

The page itself is broken, and customers see it. The usual causes:

  • A script error after an update to a plugin, the theme or the platform. Your developer can see it in the browser's developer tools.
  • A spam check that no longer works. reCAPTCHA keys, for example, are tied to the domains they were registered for, so a form moved to a new domain can fail the check every time.
  • A caching setting that serves an out-of-date copy of the form, which the server then rejects.
  • Validation that refuses real input, such as a phone number with spaces or a name with an apostrophe.
  • A lapsed plan, if the form is run by an outside form service.
  • A file upload larger than the form or the server allows.

If the spam check is the problem, do not switch it off and leave it off: how to stop contact form spam covers checks that do not block real people.

Check where the notification is sent

If the page says thank you, open the form's notification settings and read the To address character by character. The usual finds:

  • A typo, often a missing letter in the domain.
  • An address that belonged to someone who left, or to the designer who built the site.
  • An address on an old domain the business no longer uses.
  • A group or shared address that only accepts mail from its own members, so the website's message is refused.
  • Notifications switched off, or set up for a different form from the one on the page.

Send notifications to a role address that more than one person reads, such as enquiries@, rather than to one person's mailbox. How to set up a business email address covers groups and shared mailboxes.

Look in spam, quarantine and rules

Then look wherever filtered mail goes, for the test and for the past few weeks:

  • Gmail and Google Workspace: the Spam folder. Mark the message as not spam.
  • Microsoft 365: the Junk folder, and also quarantine, which is not a folder in Outlook. Quarantined mail waits on Microsoft's quarantine page, at security.microsoft.com/quarantine, and is deleted for good when it expires. Some quarantined messages can only be seen and released by an admin.
  • Inbox rules or filters that move, forward or delete messages, set up long ago and forgotten.
  • Forwarding from one address to another, which can break the checks that prove the mail is genuine.

Releasing messages one at a time is not a fix. If the notifications keep landing there, the cause is how the site sends them.

How the website sends its mail

This is the usual cause when a form says thank you and nothing arrives. WordPress, for example, sends mail through PHP's built-in mail function unless something replaces it. Its own documentation says a successful result only means the request was handed over without errors, not that anyone received the email. By default it sends from a made-up wordpress@ address on your domain, and WordPress notes that some hosts block mail from an address that does not exist.

Mail sent straight from a web server usually carries nothing that proves it came from your domain. Google's rules for senders require every sender to set up SPF or DKIM, and mail that fails can be marked as spam or refused.

Check the From line while you are there. A form that puts the customer's address in From, so that pressing reply answers them, fails those checks for customers with Gmail or Yahoo addresses, and their enquiries are the first to vanish. Use an address on your own domain in From and the customer's address in Reply-To.

The fix is to send form mail through a proper service: your own email provider, connected the way it recommends for apps and devices, or an email sending service set up for your domain. On WordPress that means an SMTP plugin or the sending service's own plugin. Then add the records the service gives you, as why your business emails go to spam explains.

When only some enquiries go missing

If most enquiries arrive and a few never do, the pattern points at the cause:

  • Only from customers with Gmail, Yahoo or similar addresses: the form puts the customer's address in the From line.
  • Only the ones with photos or documents attached: an upload or message size limit somewhere along the way.
  • Only when several arrive close together: a sending limit at the host or the mail service.
  • Only from customers abroad, or on certain networks: a country block or a security setting at the host, which turns away real people along with the bots.

Ask a friend with a different email provider, and one on a different phone network, to send a test as well. Two or three tests from different people find this kind of fault faster than ten from you.

Platform by platform

The path is the same on every platform, but where you look differs:

  • WordPress: check which form plugin the site uses and whether it stores entries. Contact Form 7 stores nothing by itself, so every enquiry exists only as the email, and its maker suggests a companion plugin, Flamingo, to save them. Other form plugins often keep entries; check their settings.
  • Website builders: look in the dashboard for the list of submissions, and in the form's settings for the notification address and whether notifications are on.
  • Embedded forms, such as a form from your booking tool or an online form builder: check the notification settings and the plan inside that service, not in the website.
  • Custom code: ask the developer where the form logs its errors, and whether it stores each enquiry before it tries to send it.

One failure, traced from start to finish

Say a cleaning company notices that quote requests have dried up since the spring. Its site runs WordPress with Contact Form 7, and its email is on Microsoft 365. The owner follows one test enquiry:

  • The page says thank you, so the form itself works.
  • There is no stored copy, because Contact Form 7 keeps none by itself.
  • The notification address is right: quotes@, a shared mailbox the office reads.
  • Junk is empty, but the quarantine page holds the test and a list of earlier enquiries, all marked as spoofed, because the site sent them from the web server with the customer's address in the From line.
  • Some of the older ones have already expired from quarantine and cannot be recovered.

The fix: an SMTP plugin that sends through Microsoft 365 from website@ on the company's own domain, the customer's address moved to Reply-To, Flamingo installed so every enquiry is saved in the site, and a test from a phone every Monday. Then the office calls back everyone it can still find in quarantine.

Keep a stored copy of every enquiry

Email is the wrong place for the only copy of an enquiry, because email fails quietly. Keep one somewhere that does not depend on it:

  • In the website itself, in the builder's submissions list or the plugin's entries.
  • In a spreadsheet or a CRM, added by the form or by an automation.
  • In your booking tool, if the form is a booking request.

Then a failed email costs you a delay instead of a customer. Keep only what you need, only for as long as you need it, and limit who can read it, as the GDPR checklist for small business websites explains. When we build a site, the form lands in your inbox, and where your software allows it, a copy goes into your customer records as well, as our websites page describes.

Test it every week

A form that worked last month proves nothing about today. Plugins update, passwords change, domains move and people leave. Set a weekly check that takes two minutes:

  • Every Monday, someone sends a test enquiry from a phone and confirms it reached the inbox and the stored copy.
  • After any change to the site, the hosting, the domain, the DNS or the inbox, send another.
  • Watch the numbers too. If a form that brings five enquiries in a normal week brings none, look before you assume it was a quiet week.

An automation can do the counting. Enquiry follow-up sends every enquiry to the right person and chases the ones nobody answered, and a well-built automation alerts a named person when a step fails, so a broken form shows up the same day.

Recover the enquiries you missed

Once it works again, go back for the ones that went missing:

  • Export the stored entries from the website for the whole period, if it kept them.
  • Check the spam folders and the Microsoft 365 quarantine before those messages expire.
  • Ask your host whether its mail logs show the messages the site tried to send.
  • Contact everyone you find, quickly and honestly.

A short message works: "Thank you for your enquiry on our website on 3 March. A fault meant it did not reach us until today, and I am sorry for the wait. Are you still looking for help with this?" A roofing or plumbing firm that calls back the same day can still win work it thought it had lost.

A checklist to keep

  • The notification goes to a role address that more than one person reads.
  • The From line is an address on your own domain, with the customer in Reply-To.
  • The site sends through a proper mail service, with SPF and DKIM set up.
  • Every enquiry is also stored outside email.
  • Someone sends a test from a phone every week and after every change.
  • Someone checks spam and quarantine every week until the cause is fixed.

If you are launching a new site, the website launch checklist covers testing every form before the first customer uses it.

Questions people ask

Why does my contact form say sent but I get nothing?

The website accepted the enquiry, so the problem is between the site and your inbox: a wrong notification address, a spam or quarantine folder, or mail sent from the web server without the records that prove it came from your domain. Check whether the site kept a copy, then work down that list.

Why are my contact form emails going to spam?

Usually because the site sends them from the web server, or with the customer's address in the From line, so the receiving server cannot confirm they came from your domain. Send them through your email provider or a sending service, from an address on your domain, with SPF and DKIM set up.

How do I test if my contact form is working?

Send an enquiry from a phone on mobile data, using an address that is not the one notifications go to, with the time in the message. Check that the thank-you message appears, the email reaches the right inbox and not spam, pressing reply answers you and a stored copy exists. Repeat it every week.

Do I need SMTP for my WordPress contact form?

In most cases, yes. By default WordPress sends mail through PHP's built-in mail function, and its documentation says a successful send only means the request was handed over. Sending through your email provider or a sending service, with an SMTP or provider plugin, gives the mail the records that prove it is yours.

Why did my contact form stop working after I changed my domain?

Three usual reasons: the spam check's key was registered for the old domain, the notification still goes to an address on the old domain, or the new domain's DNS lacks the records that let the site send mail. Check each one, then send a test from a phone.

Where do Contact Form 7 messages go?

Only to the email address in the form's Mail settings. Contact Form 7 does not store messages anywhere by itself, so if the email fails, the enquiry is gone. Its maker suggests installing Flamingo, a free companion plugin that saves every message in the site's database.