Symptoms
- The form shows a thank-you message after sending
- No email arrives, not even in spam
- Some messages arrive and others do not
- Customers say they wrote to you, and you never saw it
Why it happens
By default, WordPress sends email straight from your web server. Many servers are not set up to send mail well, and big email providers often reject or hide messages that come from them.
So the form does its job, hands the message to the server, and the message disappears. The fix is to send email through a real mail service, the same way your normal inbox does.
Try this first
-
Send a test from the site
Install an SMTP plugin like WP Mail SMTP or FluentSMTP. Most of them have a test email button. Send a test to yourself before changing anything else.
-
Connect a real mail service
Set the plugin to send through your email provider or a sending service. Use the SMTP details your email host gives you, or connect services like Google Workspace, Microsoft 365, Brevo or Mailgun.
-
Use an address on your own domain
Set the From address to something like hello@yourdomain.com. Do not send from a Gmail address through your website. Put the visitor’s email in the Reply-To field instead.
-
Add SPF and DKIM records
Your mail service will give you DNS records called SPF and DKIM. Add them in your domain settings. They prove the email really comes from you, so it does not end up in spam.
-
Turn on email logging
Most SMTP plugins can keep a log of sent emails. Turn it on, so next time you can see if a message was sent and what happened to it.
When to stop and call a person
Call a person if emails still do not arrive after SMTP is set up, if you are not comfortable editing DNS records, or if the form also needs to save messages, send them to a CRM or route them to different people.
Questions people ask
Can I also save form messages on the site?
Yes. Many form plugins can store entries in the dashboard, so nothing is lost even if an email fails. For Contact Form 7, the Flamingo plugin does this.
Why do some emails arrive and others not?
Different inbox providers have different rules. Messages often reach one provider and get rejected by another. SMTP with SPF and DKIM fixes most of these cases.
Related fixes
ChatGPT code in functions.php crashed your WordPress site
You pasted a snippet from ChatGPT into functions.php and now the site shows a white screen or "There has been a critical…
AI-written WordPress plugin has security holes
Plugins written by ChatGPT often work, but skip the checks that keep attackers out. Here are the four checks every custom plugin…
WooCommerce checkout fails for customers but works for you
You test the checkout and it works. Customers tell you it hangs, shows an error or never confirms the order. The usual…
AI-written WooCommerce code shows the wrong prices
Prices on product pages, in the cart or at checkout do not match, or discounts apply where they should not. AI-written price…