Website Contact Form Not Sending Emails? Why It Happens and How to Fix It

A broken contact form is one of the most expensive email problems a small business can have, because nobody tells you it’s broken. Your visitor fills it in, sees a “thank you” message and waits for a reply that never comes. You assume it’s been a quiet week.
The good news is that the causes are well understood, and most can be fixed for good. This guide explains how website forms send email, how to check whether yours is working, and the six most common reasons it isn’t.
How a contact form email actually gets sent
It helps to know what happens when someone presses “Send” on your website, because the problem is almost always at one of these steps:
- The form collects the message and hands it to your website.
- Your website turns it into an email and tries to send it, usually from your web hosting server.
- The receiving mail server decides what to do with it — deliver it to your inbox, put it in spam, or quietly throw it away.
The visitor sees a “thank you” message after step one. Nothing tells either of you if steps two or three fail. That’s why a form can look perfectly fine for months while enquiries disappear.
First, check whether it's really broken
Before changing anything, spend ten minutes working out what’s actually happening:
- Send yourself a test — fill in the form twice, once with a Gmail address and once with a different address such as Outlook or your own business email.
- Check spam, junk and quarantine — not just your inbox. If you use Microsoft 365, messages can be held in quarantine where you won’t see them in Outlook at all.
- Check where the form is sending to — open your form settings and look at the notification address. We regularly find forms still sending to a former employee, a mistyped address, or an old mailbox that no longer exists.
- Check whether the form saved the message — many form tools can keep a copy of every submission in your website dashboard. If the message is saved there but never reached you, the form works and the email is the problem.
If your test arrives in spam, or doesn’t arrive at all, one of the causes below is almost certainly responsible.
1. Your website is sending email with no proof of identity
This is the most common cause by far. Out of the box, WordPress and many other website platforms send email straight from the web server using a basic built-in function, with no authentication at all.
To Gmail or Outlook, that email claims to be from your business, but arrives from a shared web server that your domain has never said is allowed to send for you. It fails the checks that SPF, DKIM and DMARC are designed to perform, so it’s sent to spam or rejected outright. Our guide to what SPF, DKIM and DMARC mean explains these checks in plain English.
This has become much more common since Google and Yahoo tightened their rules for senders in 2024. Setups that “always worked” can stop working without anything changing on your end.
2. The form pretends the email is from your visitor
Many forms are set up so the email appears to come from the visitor’s own email address — for example, from sarah@gmail.com — so you can just press reply.
The problem is that your web server has no permission to send email as gmail.com, yahoo.com or anyone else’s domain. To receiving mail servers that looks exactly like spoofing, and providers with strict DMARC policies (Yahoo and AOL, for example) tell mail servers to reject it outright.
The fix: send the notification from an address on your own domain, such as website@yourbusiness.co.uk, and put the visitor’s address in the Reply-To field. You can still press reply and it goes straight to the customer.
3. It's arriving, just not where you're looking
Sometimes the email is delivered perfectly — to the wrong place. Common culprits:
- a rule or filter in your mailbox that moves messages to a folder
- an address like info@ that forwards to a mailbox nobody checks any more
- a spam or quarantine setting that holds messages from your own website
- notifications going to the web designer’s address from when the site was built
4. Your web host is limiting or blocking email
Cheaper shared hosting often restricts outgoing email to prevent abuse. Your host might limit how many emails can be sent per hour, switch off the website’s built-in mail function altogether, or share a server with other websites whose bad sending habits have landed it on a blocklist.
None of these produce an error on your website. The form says “thank you” and the email simply never leaves the server, or is refused when it arrives.
5. Something else changed
If your form used to work and has stopped, think about what’s changed recently. Typical triggers include:
- Moving email provider (for example to Google Workspace or Microsoft 365) without updating your domain’s DNS records
- A new or rebuilt website, or moving to a new host
- Changing an email password that the website was using to send
- Your email provider turning off older, less secure login methods, which Google and Microsoft have both been doing, and which can quietly break a form that was set up years ago
6. The form itself isn't submitting
Occasionally the fault is in the form rather than the email. A plugin update, a caching setting or a spam-protection tool such as a CAPTCHA can stop the form from submitting at all.
Watch what happens when you press “Send”. If you don’t see a success message, or you see an error, start with the form itself. If the success message appears and the entry is saved in your dashboard, the form is fine and the problem is the email.
The fix that lasts: send through a proper email service
Checking spam folders and fixing the “to” address are quick wins. But the reliable, long-term fix for most websites is to stop sending from the web server and send through a proper, authenticated email service instead. In practice that means:
- Connecting your website to a real sending service — your existing Google Workspace or Microsoft 365 account, or a dedicated sending service built for website email. On WordPress this is usually done with an SMTP plugin.
- Updating your domain’s DNS records so SPF and DKIM include that service. Be careful here: a domain must have only one SPF record, and adding a second one breaks SPF for all your email, not just the form.
- Sending from your own domain, with the visitor’s address as Reply-To.
- Keeping a copy of every submission in your website, so an email problem never means a lost enquiry.
- Testing across providers — Gmail, Outlook and others — to confirm the notifications land in the inbox.
Done properly, this takes a website from “sometimes works” to reliable, and it usually improves the delivery of the rest of your business email too.
Where to go from here
If your form has gone quiet, don’t wait for a customer to tell you. Send a test today and check your spam folder. If the test goes missing, the most likely causes are the authentication problems covered in our guides to what SPF, DKIM and DMARC mean and why emails go to spam. It’s also worth reading why “it sent” doesn’t mean “it arrived”.
If you’d rather have someone find the cause and fix it properly, that’s exactly what our free initial assessment is for.
Need help fixing this?
We provide:
- Free initial assessment
- Clear explanation of the issue
- Fixed-price solutions
- UK-based support
If your website form isn’t delivering enquiries, we can find the cause and fix it properly.
