Lorixen.
EN

Contact form emails not arriving? Fixing website form delivery

Short answer: Most "my contact form stopped sending" problems come from the website trying to send email itself through the web server, which mail providers increasingly distrust, or from a From address that doesn't belong to your domain. Fix it by sending form notifications through an authenticated SMTP or transactional email service, using an address on your own domain in the From field and the visitor's address in Reply-To. Then switch on entry storage so no enquiry is ever lost again, and test with a real submission.

First, stop losing leads while you fix it

Before any troubleshooting, make sure new enquiries are recorded somewhere other than email:

  • If your form plugin can store entries in the WordPress database, turn that on. Contact Form 7's own documentation puts it bluntly: messages can be lost forever if your mail server has issues or the mail configuration is wrong, so install a storage plugin first. Its companion plugin, Flamingo, saves all submissions to the database.
  • Put a phone number or direct email address next to the form with a short note ("Form playing up? Call us") until it's fixed.
  • Check whether anyone has tried to reach you: look in spam folders, the hosting account's mail logs if you have access, and any entries already stored.

Why website email fails

When a WordPress form sends a notification, it usually calls wp_mail(), which by default hands the message to the server's mail function. WordPress's developer reference makes an important point: a true return value does not automatically mean the email was received; it only means the sending method processed the request without an error. In other words, the form can say "Thank you, your message was sent" while the email is rejected or junked moments later.

Three things usually go wrong:

  1. The server isn't a trusted sender. Shared hosting servers send mail for hundreds of sites. Receiving providers may reject or spam-folder anything that isn't authenticated for your domain.
  2. The From address is wrong. Contact Form 7's best-practice guide explains that putting an address from another domain (a Yahoo or Gmail address, or the visitor's own address) in the From field looks exactly like spoofing, so providers treat it as suspicious. Its advice: use an address on your site's domain in From.
  3. The host blocks or limits mail. Some hosts block outgoing mail from addresses that don't exist, such as the default wordpress@ address, or limit how much the server can send.

Troubleshooting flow

Work down this table. Each row is a symptom you can observe, what to check, and the usual fix.

Symptom Check Fix
Form shows success, nothing arrives anywhere Is the site sending through the server's mail function? (No SMTP plugin or service configured) Route mail through SMTP or a transactional email service
Emails land in spam Is the From address on your domain? Is the domain authenticated for the sending service? Set From to an address like forms@yourdomain.com; complete the sending service's domain verification (SPF/DKIM records)
Emails arrive for some recipients, not others (e.g. fine to Gmail, missing at Outlook) Recipient provider's spam/quarantine; sending reputation of the server Authenticated sending service; ask the recipient's IT to check quarantine
Form shows an error on submit Plugin's error message; whether the SMTP credentials or API key still work Re-enter credentials; check the service hasn't suspended the account or hit a limit
Notifications stopped after a hosting move or plugin update SMTP plugin settings, PHP mail disabled on new host, changed DNS Reconfigure SMTP; re-add DNS records for the sending service on the new DNS host
Only the auto-reply to the visitor fails The "Mail (2)" or confirmation email's From and To fields Same From rules; consider whether auto-replies are needed at all
Some submissions arrive, others never do Spam filtering in the form (CAPTCHA, honeypot), entry log Compare stored entries with emails received; adjust anti-spam settings
Replies go to your own address instead of the customer Reply-To header Set Reply-To to the visitor's email field

Setting it up properly

1. Choose how mail leaves the site

Connect your form notifications to an authenticated sender. Typical options are your business email provider's SMTP server (fine for low volume) or a transactional email service built for application email. Transactional services also give you an activity log showing whether each message was accepted, delivered or bounced, which ends the guessing. Postmark's documentation, for example, describes "transactional" streams as one-to-one emails triggered by a user action, which is exactly what a form notification is.

Most WordPress setups use an SMTP or mailer plugin for this; many form plugins and managed hosts have their own integration.

2. Set From, To and Reply-To correctly

  • From: an address on your website's domain, ideally one that exists, such as forms@ or website@.
  • To: the inbox someone actually reads, or a shared address several people can see.
  • Reply-To: the visitor's email field. Contact Form 7 lets you set this in the "Additional headers" field of the Mail section. Other plugins have a Reply-To setting in the notification options.

This combination is what keeps the email trustworthy to spam filters while still letting you hit "Reply" and answer the customer.

3. Authenticate your domain for the sending service

The sending service will ask you to add DNS records (usually SPF and DKIM) so receiving providers know it may send on your behalf. Add exactly what it asks for in your DNS settings, merging with any existing SPF record rather than creating a second one, then wait for its dashboard to show "verified".

4. Test like a customer

  • Submit the form from a phone, not logged in, using a personal Gmail address and then an Outlook/Hotmail address.
  • Check the notification arrives, isn't in spam, and that "Reply" goes to the test address.
  • Confirm the entry was stored on the site.
  • Check the sending service's log shows the message as delivered.

5. Keep watching

Repeat a test submission monthly or after any plugin, hosting or DNS change. Some teams set up a scheduled test that submits the form automatically and alerts them if the email doesn't arrive.

FAQ

Can I put the customer's email address in the From field so replies are easy?

No. That's exactly what spoofing looks like to mail providers. Use your own domain in From and the customer's address in Reply-To.

Do I need a paid service?

Not always. Your existing business email account's SMTP settings may be enough for a few enquiries a day. A transactional service becomes worth it when you need delivery logs, higher volume or more reliability.

My form has worked for years. Why did it stop now?

Mail providers tighten their rules over time, and hosts change server settings. A setup that relied on unauthenticated server mail can stop working without anything changing on your site.

Should the form also send to a CRM?

If enquiries matter to your business, yes. Sending each entry to a CRM or spreadsheet as well as email gives you a second copy and makes follow-up easier.

If your website's enquiries keep disappearing and you'd like them routed reliably to your inbox and CRM, send us the form's address and what happens when you test it.

Sources

WhatsAppLet’s talk