Email

Contact Form Emails Not Arriving? Fix Spam and Delivery Problems

If website form messages never reach your inbox, the cause is usually sender authentication. Here is how to diagnose and fix contact form email delivery.

作者:Zebra Hosting Cloud

You build a contact form, test it once, and it works. A month later you discover that customer enquiries have been going missing. This is a very common problem, and it is rarely the form's fault. The usual cause is the way the message is addressed and sent. This guide shows how to find the cause and fix it for good.

Why form emails are special

A contact form creates an email on behalf of a visitor. A careless setup uses the visitor's address as the sender, and the website's server as the sending machine. Mail filters see a message that claims to be from [email protected] but arrives from your web server, which that domain's records know nothing about. That looks exactly like spoofing, and modern filters, especially under DMARC, treat it that way. Messages get rejected, quarantined or put in spam.

The right pattern

  1. From is an address on your own domain, such as [email protected].
  2. Reply-To is the visitor's address, so that pressing Reply goes to them.
  3. To is the mailbox where you read enquiries.
  4. The message is sent through authenticated SMTP, signed by your DKIM key and covered by your SPF record.

With this pattern the message is genuinely from your domain, sent by your own infrastructure, so authentication passes. The visitor's address remains available for replies without being used to claim identity.

Step-by-step diagnosis

1. Check whether the message was sent at all

Look for a log in your form plugin or application. If it records successful sends, the problem is delivery. If it shows errors, the problem is the mail function or SMTP settings.

2. Check spam and quarantine

Look in the spam folder of the receiving mailbox, and in any quarantine area your provider offers. Search for a unique word from a test message.

3. Send a test to a different address

Set the recipient to a personal mailbox at another provider. If it arrives there but not in your business inbox, the problem lies with your receiving side: filters, forwarding rules or a full mailbox.

4. Read the headers

In a received test message, check whether SPF, DKIM and DMARC pass. Failures show where to focus.

5. Check the sending limits

Hosting accounts often cap outgoing mail per hour. Spam bots that submit your form thousands of times can exhaust the limit, so genuine messages are delayed or blocked.

Fixes in order of impact

ProblemFix
Visitor's address used as FromUse your own domain as From, visitor as Reply-To
No authentication on website mailSend through SMTP with a real mailbox
SPF does not list the sending serverAdd the server or service to SPF
No DKIM signingEnable DKIM on the mail server or sending service
Form flooded with spamAdd anti-spam protection and rate limits
Recipient mailbox fullClear space or raise the quota

Reducing form spam

Bots find forms quickly. Every bot message that gets sent damages your sending reputation and buries real enquiries. Combine several light measures:

  • A hidden "honeypot" field that humans never fill in.
  • A challenge such as a privacy-friendly CAPTCHA alternative on high-traffic forms.
  • Server-side validation, rejecting messages that contain many links or obviously blank fields.
  • Rate limiting by IP address.
  • A save-to-database option, so no enquiry is lost even if email fails.

Do not rely on email alone

Email is a good notification system but not a perfect store. Many form plugins can keep a copy of each submission in the website's admin area. Enable that option, and check it occasionally. It turns an invisible failure into a visible one, because you can compare the entries with what arrived in your inbox.

Test on a schedule

Send a test submission after any change: plugin updates, DNS changes, switching mail providers, renewing a domain. Put a monthly reminder in your calendar. A two-minute test prevents weeks of lost leads.

Inform the visitor, too

After submitting, show a clear confirmation message, and consider sending an automatic acknowledgement to the visitor from your domain. If the visitor sees no confirmation, they may submit again or give up. A confirmation email also gives you a quick check that outgoing mail works.

A real-world example

A small consultancy installs a form plugin that sets the From address to whatever the visitor typed. For months everything seems fine, because the owner's mailbox is on a lenient provider. After the domain is moved to a stricter mailbox host that enforces DMARC checks on incoming mail, nearly every enquiry vanishes. Nothing in the form changed. The fix takes ten minutes: switch the From address to the company's own domain, put the visitor in Reply-To, and send through the company mailbox over SMTP. The lesson is that a setup that tolerated shortcuts yesterday may stop working when anything around it changes.

Check the receiving side too

Sometimes the website sends correctly and the mailbox is at fault. Look for a filter or rule that moves mail with certain words, a forwarding rule that sends copies to an address that rejects them, or a rule created by a former colleague. Also check that the address in the form settings has no typo, which is more common than anyone admits.

Reliable forms with Zebra Hosting

If your site is on WordPress, Zebra Hosting can host it with Plesk, and you can create a dedicated mailbox for form messages and connect it with authenticated SMTP. Support in 17 languages can help you check your records. See the WordPress hosting plans and the business email options.