WordPress contact form not sending emails
Visitors fill in your WordPress contact form but you never get the message. Why WordPress mail goes missing and the reliable way to fix it for good.
You might be seeing
Form says "Thank you, your message has been sent" but nothing arrivesThere was an error trying to send your message.Form emails arrive only sometimes, or in spam
What it means
By default, WordPress sends email using the web server itself, which is not a real email service. Gmail, Outlook and others increasingly treat these messages as suspicious and drop them or move them to spam. So the form works, but the email carrying the message never reaches you.
What usually causes it
- No proper sending service is set up. WordPress uses the server’s basic mail function.
- The form sends “from” your visitor’s address. Receivers see an email claiming to be from
someone@gmail.combut coming from your server, and reject it. - Your domain’s SPF record does not list the server that sends the form, and the email is not signed with DKIM.
- Your host blocks outgoing mail, which some cheaper hosts do to prevent spam.
What you can check yourself
- Check your spam folder and any “promotions” or “other” tabs.
- Send a test from the form yourself, using a different email address than the one that receives it.
- Look at the form’s email settings. If the “From” field uses the visitor’s email, that is often the problem. The visitor’s address belongs in “Reply-To”.
- Check whether the form plugin keeps a copy of entries. Gravity Forms, the paid versions of WPForms, and Flamingo (a free add-on for Contact Form 7) can store messages, so nothing is lost while you fix the email.
When to ask for help
- Test messages still do not arrive after checking spam.
- Messages from the form are important for your business, such as bookings or quotes.
- You also have problems with other website emails, like order confirmations.
The reliable fix is to connect WordPress to a real email sending service and set up your domain so receivers trust it. I can do that and send you a test to confirm it works.
Updated