Contact forms can fail in several places. The form can fail to submit, the website can fail to send, the mail server can reject the message, or the recipient mailbox can filter it into spam. Check each part in order instead of changing random settings.
Send a Controlled Test
Submit the form yourself with a clear subject and message, then record the exact time. Use an email address you control so you can check both the sender and recipient side.
If the form shows an error before submission, this is probably a form/plugin issue. If the form says the message was sent but nothing arrives, continue with mail delivery checks.
Check the Recipient Address
Make sure the form sends to the correct mailbox. Old contact forms often still point to a previous agency, old employee, or mailbox that no longer exists.
In WordPress, check the form plugin notification settings. For non-WordPress sites, check the form handler or application configuration.
Check Spam and Quarantine
Check spam, junk, quarantine, and any filtering rules on the recipient mailbox. If the message reaches spam, the form is sending but deliverability needs work.
Use an Address on Your Domain
The form should usually send from an address on your own domain, such as [email protected]. Put the visitor's email address in the reply-to field, not the from field.
Sending from the visitor's Gmail, Outlook, or company address through your website can fail authentication checks because your server is not authorised to send for their domain.
Check SMTP
Authenticated SMTP is more reliable than basic PHP mail and gives clearer errors when something fails. If the site uses WordPress, configure a reputable SMTP plugin and send a test email from the plugin settings.
If SMTP authentication fails, check the mailbox username, password, server, port, and encryption settings.
Check Email DNS Records
SPF, DKIM, and DMARC help receiving servers trust mail from your domain. Missing or incorrect records can push form messages into spam or cause rejection.
Use How to Check Email DNS Records to review MX, SPF, DKIM, and DMARC.
Check Website Logs
If the form throws an error or times out, check logs in Enhance. Look for PHP fatal errors, SMTP connection errors, plugin warnings, or blocked outbound connections around the time of your test.
Common Causes
- Wrong recipient address.
- Messages landing in spam.
- Form sends from the visitor's address instead of your domain.
- SMTP password or server settings are wrong.
- SPF, DKIM, or DMARC are missing or incorrect.
- A security plugin blocks the form submission.
- The mailbox is full.
Related TekLan Posts
Read Why Your Contact Form Emails Go Missing, How to Check Email DNS Records, and How to Check Website Error Logs in Enhance.