How to check a contact form is actually delivering

A contact form can render, validate, accept a message and show a thank-you screen while delivering nothing. Here is how to test each link in that chain.

Runa6 min read

A contact form is the only part of a small business site where failure is completely silent on both sides. The visitor believes they got in touch. The owner sees a quiet inbox and assumes it is a slow month. Nobody finds out until someone asks in person why their enquiry was ignored.

The chain between a filled-in form and a read email has five links, and each one fails differently.

1. The form renders

Forms are frequently injected by a plugin or an embed, which means a script error can leave the section heading in place and the form gone. Check the fields themselves are present, not that the page contains the word “Contact”.

2. The fields accept input and validate correctly

Validation is where an update does its quietest damage: a phone field that starts rejecting the local number format, a required field added to a form nobody re-tested. The form can be filled in and never submitted, and the error appears only after someone has typed everything.

Test with a value a real visitor would enter, not with test in every box.

3. The submission is accepted

Watch what the browser sends and what comes back. A form that shows a success message regardless of the response is extremely common, because the confirmation is often rendered optimistically, before the server has said anything. A 500 from the form handler with a thank-you screen on top of it is the classic silent failure.

4. The message survives spam filtering

Spam protection sits between acceptance and delivery, and when it is misconfigured it does not fail. It succeeds, into nothing. A tightened filter, a mis-set threshold or an expired anti-bot key will discard real enquiries and report success at every step you can observe from outside.

5. The mail actually arrives

The last link is the one no external check can see. Mail can be accepted by the site and rejected by the recipient: a shared host sending as the domain without authorisation, an SPF or DKIM record that changed when the business moved provider, a forwarding rule that silently drops mail from unknown senders.

How to test the chain rather than the page

Links one to four can be checked from outside, repeatedly, by driving the form in a real browser and watching the requests it makes. Link five needs a message that actually arrives somewhere you can look.

The arrangement that works, and does not bury anyone in test mail:

  • Check the form renders, validates and would submit, frequently. Several times a day catches most failures within hours.
  • Send one genuine, clearly marked test submission on a schedule you choose, to an address that is filtered into its own folder, and confirm it arrives.
  • Alert on the change, not on the state: you want to be told when it stops working and when it starts again, not once an hour while it is down.

This is how contact form monitoring works in JourneyPing. The form is exercised the way a visitor uses it and stops before sending by default, and actually submitting is something you turn on deliberately rather than something that happens to an inbox by surprise.

Whatever you use, do the first test today on the site you would be most embarrassed to find broken. In our experience it is not usually the one you would guess.

See this checked on your own site.

Request a demo and we’ll set up a workspace, add a site you care about, and show you the report it produces.