How to Set Up a Contact Form That Actually Reaches You
Most form emails vanish because the web server sends them directly. Use SMTP, set reply-to correctly, store submissions in the database, and test properly.
Why website contact form emails disappear, and the setup that makes sure every enquiry reaches you.

TL;DR: Quick Answer
Most form emails vanish because the web server sends them directly. Use SMTP, set reply-to correctly, store submissions in the database, and test properly.
Key takeaways
- Very cheap quotes (under R5,000) almost always exclude copywriting, SEO, custom design and post-launch support
- Professional copywriting can represent 20-35% of a total website project cost, and is worth it for search visibility
- On-page SEO built into the website at launch costs a fraction of what it costs to retrofit after the site is live
- Hosting, SSL, domain and maintenance add R3,000-R10,000 per year on top of build cost
- E-commerce adds significant cost due to payment gateway integrations, product data, security requirements and checkout UX
- Timeline and client responsiveness directly affect cost: slow feedback rounds extend agency hours
Lost enquiries are the most expensive quiet failure a website has, because nothing looks broken. The form submits, the visitor sees a thank-you message, and the email never arrives. Businesses have run for months this way.
Why the emails vanish
By default, most contact forms send mail directly from the web server. Mail providers treat that as suspicious, because most mail originating from web servers is spam.
So Gmail and Outlook either bin the message silently or drop it in spam. Nothing errors, and the visitor gets a confirmation, which is why the problem goes unnoticed.
It is made worse by a second common mistake: setting the sender address to the visitor's email. The message then claims to come from gmail.com while originating from your server, which fails authentication outright.
The fix: send through SMTP
SMTP means the form logs into a real mailbox and sends the message properly, exactly as your email client does. The message then comes from a domain authorised to send it, and it arrives.
On WordPress this is a plugin such as WP Mail SMTP or Fluent SMTP, configured with either your existing business mailbox or a dedicated sending service.
Either works. A dedicated service gives you delivery logs, which are useful when you need to prove an enquiry was or was not sent.
Set the addresses correctly
| Field | Set it to |
|---|---|
| From | An address on your own domain |
| From name | Something recognisable, e.g. "Website Enquiry" |
| Reply-to | The visitor's email address |
| To | The inbox that is actually monitored |
Reply-to is the field that makes this work. You still hit reply and it goes to the customer, but the message itself is sent by a domain allowed to send it.
Authenticate your domain
Three DNS records tell the world which servers may send mail as you: SPF, DKIM and DMARC.
Without them, even correctly configured mail is more likely to be filtered. Your email provider documents the exact values, and adding them is a DNS change rather than a development task. It also improves the delivery of every other email you send.
Store every submission
Email is best-effort. Storage is not.
Configure the form to save each submission in the website database as well as emailing it. Most form plugins do this with a setting.
Then if mail fails, the enquiry is still there. This one setting has recovered a great many lost customers for businesses that discovered the problem late.
Sending a copy to a second address, or into a shared inbox, adds another layer of safety for very little effort.
Stop spam without losing real enquiries
A honeypot field, hidden from people but visible to bots, catches most automated submissions and costs genuine users nothing.
A time check rejecting submissions completed in under two seconds catches most of the rest.
Add a CAPTCHA only if spam continues after those. Every CAPTCHA costs you some genuine submissions, and on mobile it costs more than people expect.
Test it properly, then keep testing
Submit the form yourself from a phone on mobile data, using an outside email address. Confirm it arrives in the inbox rather than spam, that reply works, and that the submission is stored.
Then repeat this monthly. Plugin updates, host changes and mail provider policy changes all break form delivery, and the failure is silent every time.
Finally, confirm the thank-you page fires a conversion event in analytics, so your enquiries are measured as well as delivered.
Juicy Designs configures SMTP, authentication and database storage on every site we build. See web design and website maintenance. Related: form optimisation and tracking where leads come from.
Frequently asked questions
Why do my website contact form emails not arrive?
Almost always because the form sends mail directly from the web server, which mail providers treat as untrusted. The fix is to send through an authenticated mail service using SMTP, so the message comes from a domain that is allowed to send.
What is SMTP and why does it fix the problem?
SMTP means the form logs into a real mailbox and sends the message properly, the same way your email client does. Gmail and Outlook trust that far more than mail generated by a random web server, so it reaches the inbox instead of spam.
Should the form email come from the visitor's address?
No. Set the sender to your own domain and put the visitor's address in the reply-to field. Sending as the visitor's address fails authentication checks and is a common reason messages disappear.
How do I make sure I never lose an enquiry?
Store every submission in the website database as well as emailing it. Then even if mail fails, the enquiry is recoverable from the admin area.
How do I stop spam without losing real enquiries?
A honeypot field plus a simple time check stops most bots invisibly. Add a CAPTCHA only if spam continues, because it costs you genuine submissions.
