Web Design

Contact Form Not Working: Where Are the Messages Going?

7 min read

Nobody notices a broken form, because it does not throw an error. The visitor sees "sent" and you see nothing at all.

The most dangerous thing that can break on a website is the contact form — because when it breaks, no alarm goes off. The site loads, the form submits, "your message has been sent" appears, and the message goes nowhere. The visitor waits for a reply while you conclude that nobody enquired this month.

On an education site we took over, this failure had been running for three years. The organisation believed the web brought no enquiries and kept increasing its ad budget. Every enquiry had been quietly disappearing. This article explains why the fault stays invisible for so long, how to test your own site, and how to fix it permanently.

Where Exactly Does the Message Disappear?

  1. Browser to server. A JavaScript error or an over-tuned captcha silently blocks the submission, so it never reaches the server at all.
  2. Server to mail service. The server tries to send but the sending configuration is missing or broken, and the form plugin swallows the failure.
  3. Mail service to recipient. The message is sent but the receiving side — Gmail, Outlook, a corporate server — rejects it because the sender cannot be verified. This is the sneakiest case: your logs say "sent".
  4. Inbox to you. It arrives, but lands in spam or gets filed away by a rule.

In our experience the vast majority sit at stage three: unverified sender identity.

Why Does It Go Unnoticed for Years?

First, the form never shows an error. Nearly every form plugin shows the visitor a success message even when delivery fails, on the reasoning that technical errors are bad UX. The result is that nobody learns anything is broken.

Second, it looks fine when you test it yourself. Mail from your own domain to your own domain usually takes a different path and arrives. The real problem only appears with mail coming from outside.

Third, "no enquiries" gets blamed on something else. The market is slow, the season is quiet, the ads are not working. Nobody suspects the form.

How to Test Your Site in Five Minutes

  • Use a different email. Fill in the form with a personal Gmail or Outlook account, not your corporate address, and have it delivered to your corporate address.
  • Check the spam folder. If it arrives but lands in spam, the issue is reputation, not delivery.
  • Wait ten minutes. Some servers queue mail; a delay is not the same as a loss.
  • Check the admin panel. A well-built site also stores submissions in the database. A record in the panel with no email proves the fault is on the email side — and at least the enquiry is not lost.
  • Repeat monthly. This is not a one-off. The form may work today and break with tomorrow's plugin update.

The Four Causes We See Most

1. Sending through the server's basic mail function

In default installations the site sends mail through the server's basic function. Because the sender is not authenticated, large providers either mark it as spam or reject it outright. The fix is authenticated sending through a real mailbox.

2. Setting the visitor's address as the sender

A very common mistake: the form sends mail as if it came from the visitor's address. The receiving server sees a message claiming to be from a Gmail address that never left Google's servers and treats it as forgery. The correct approach is to send from your own domain and put the visitor's address in the reply-to field only.

3. Missing domain authentication records

If your domain does not publish which servers may send on its behalf, every message you send is suspect. Set these records up once and form mail, quotes and invoices all start arriving properly.

4. Spam protection blocking silently

Tuned too tightly, spam protection filters out real visitors. The user submits, the protection layer drops the request, and the visitor still sees a success message. Nothing is stored in the panel either — the hardest scenario to detect.

Building a Permanent Fix

Layer 1 — dual recording. Every submission goes out as email and is written to the database. Even if mail is lost, the enquiry survives in the panel. This alone removes the biggest risk.

Layer 2 — authenticated sending. Mail goes through a real mailbox with authentication, and the domain records are aligned with it.

Layer 3 — routine testing. Once a month, the form is filled from outside and delivery is verified. This is a standard item in our maintenance subscription — it is exactly what we mean by "functional checks".

With all three in place, a form fault is caught in minutes rather than years. We described how this played out on a real project in this case study.

When You Need a Professional

If you have worked through the plugin settings and mail still does not arrive, the problem is probably not in the site but in the domain and server layer. Authentication records, sender verification and server reputation all interact; setting one wrongly can break the others. And if your domain has previously been blocklisted, restoring deliverability is a separate process.

How Do You Know the Form Keeps Working?

A one-off test proves nothing, because a form that works today can break tomorrow. Three ways to get lasting assurance:

Automated monitoring. A monitor can submit the form at intervals and check whether the mail arrives, alerting you when it does not. That catches failures in hours rather than weeks.

A submission counter in the panel. If submissions are written to the database, watching the weekly count is an alarm system in itself. On a site that normally receives fifteen enquiries a week, a drop to zero is not "a quiet market".

A sending log. Keeping a record of every mail the site sends lets you see retrospectively where an enquiry was lost. A "sent" record with no mail at the customer end means delivery; no record at all means the form. That distinction cuts diagnosis to minutes.

Common Mistakes in the Form Itself

  • Too many required fields. Every extra one lowers completion. Name, contact detail and message are enough for most businesses; the rest comes out in conversation.
  • Vague error messages. "Could not send" tells the visitor nothing. Say which field is wrong, next to that field.
  • Wrong mobile keyboard. If a phone field opens a letter keyboard, half your visitors give up.
  • Nothing visible after submit. If the thank-you message sits below the fold, visitors resubmit and you receive the same enquiry twice.
  • No auto-reply. Without a "we received this and will respond within X" message, the person waiting writes to a competitor instead.

A form working technically is not enough; it has to be completable and reassuring. A share of lost enquiries happens here rather than in delivery.

What Would It Cost If We Fixed It?

You do not have to guess, and you do not have to ask us. Tick the items you need in the calculator on our site and the total appears instantly. No forms, no waiting for a quote.

Calculate your price in one minute →

Frequently Asked Questions

Let's Find the Right Solution for Your Business

Get a custom quote for your website, SEO or chatbot needs.

See what your project would cost — right now

Tick the items you need and the total is calculated instantly. No phone call, no waiting.

Calculate price