Web Development

Contact Form Emails Not Arriving? Why WordPress Emails Go Missing and How to Fix It

A form that says thanks while no email arrives quietly loses enquiries. Why WordPress form emails go missing, how to test yours and what to fix first.

zabil

6 min read
Open laptop on a white desk next to a notebook with envelopes and car keys

A contact form that says “Thanks, we’ll be in touch” while no email ever reaches you is one of the quietest ways to lose business. The visitor thinks you ignored them. You think nobody enquired. Neither side finds out.

If your site gets visitors but few enquiries, rule this out before blaming your marketing. Our guide to why a website gets visitors but no enquiries lists the other common causes. This post covers the email side: why WordPress form emails go missing, how to test yours in ten minutes, and what to fix first.

How WordPress actually sends email

WordPress does not send email itself. Its own developer documentation explains that WordPress “is not involved in the process of sending emails but only in the process of formatting the message to submit it to this mailing API”.

By default, the documentation says, the wrapper tells the PHPMailer library to use PHP’s internal mail() function, a function that “requires the presence of a sendmail-compatible binary acting as the MTA”. In plain English: WordPress hands your message to the hosting server, and the server’s mail setup does the rest. Whether it arrives depends on that setup and on whether the receiving inbox trusts the message.

On managed hosting, the documentation says there is typically nothing extra needed to send emails, but “some additional actions to ensure deliverability” may be required. Those extra actions are where most problems live.

Cause 1: the email is sent but lands in spam or is rejected

This is the most common cause. Google’s email sender guidelines say that since 1 February 2024 everyone who sends email to personal Gmail accounts (addresses ending @gmail.com or @googlemail.com) must set up SPF or DKIM. Google recommends you “always set up SPF, DKIM, and DMARC”, and says messages that aren’t authenticated “might be marked as spam or rejected with a 5.7.26 error”.

In plain terms:

  • SPF is a DNS record listing the servers allowed to send email for your domain. Google puts it simply: SPF says your server sent the email.
  • DKIM is a digital signature added to the message. Google says DKIM says you wrote the email.
  • DMARC is a record telling receiving servers what to do with messages that fail SPF or DKIM. Google recommends starting with the policy set to none, then tightening it over time.

WordPress’s documentation calls setting up SPF, DKIM and DMARC “a critical step to ensure deliverability”. This matters even if you only read enquiries in your own Gmail inbox, because the website is the sender and Gmail judges the sender.

Cause 2: the From address is wrong

By default WordPress fills in the From field with wordpress@yourdomain and the name “WordPress”. The documentation says this is fine as long as it is a valid address, and recommends making sure the mailbox exists.

Trouble starts when the From address belongs to a different domain than the one sending. Some form setups put the visitor’s email address in the From field so you can hit reply. To a receiving server that looks like your website sending as someone else’s domain. Google’s guidelines say not to “impersonate other domains or senders without permission”, call this spoofing, and warn Gmail might mark such messages as spam. For DMARC to pass, Google says the authenticating domain must be the same domain that appears in the From header.

The safer pattern: send from an address on your own domain, and put the visitor’s address in the Reply-To field. The WordPress documentation notes that Reply-To defaults to the From address unless you set it explicitly.

Cause 3: mail is sent from the web server instead of a mail service

The documentation describes setting up an SMTP relay through a third-party mailing service as the recommended method if you are not handling a high volume of emails and do not want to deal with the complexity of deliverability yourself. SMTP plugins do the same job: they override the default mail settings so mail is sent through a remote mailing service on behalf of your domain.

It also suggests asking your host whether it offers an SMTP relay option in its admin panel. That is a good first question to put to your hosting support.

Cause 4: the problem is on your side of the inbox

Check the boring things too: a mistyped recipient address in the form settings, a full mailbox, a filter rule that archives the notification, or the spam folder. Gmail users should search All Mail, not just the inbox.

Cause 5: the form itself failed

A form can show a success message while something behind it has broken, for example spam protection blocking genuine submissions after a plugin update. If your form only emails and never saves entries, a failure leaves no trace at all. Choose a setup that stores every entry in WordPress as well as emailing it, so nothing is ever lost silently.

How to test in ten minutes

  1. Submit your live form yourself, using an email address at a different provider from the one that receives your enquiries.
  2. Wait a few minutes, then check the inbox, the spam folder and All Mail.
  3. If it arrives, open it in Gmail, choose More then Show original, and look at the header. Google’s help page explains how to view and analyse a full header, and WordPress’s documentation says the header shows whether the receiving server verified your SPF and DKIM.
  4. If it does not arrive, look at the form’s saved entries (if it keeps any), then ask your host whether mail is being sent from the server and whether SPF and DKIM are set up for your domain.
  5. Repeat the test monthly and after any plugin, theme or hosting change.

Fix in this order

  1. Send from an address on your own domain, with the visitor’s address as Reply-To.
  2. Make sure SPF, DKIM and DMARC exist for your domain, starting DMARC at none.
  3. Route mail through a proper SMTP service or your host’s relay.
  4. Save every entry in WordPress, and offer a second route such as a WhatsApp button, then track enquiries in GA4 so you can see how many people try.

A word of caution: DNS records control both your website and your email, and a wrong edit can break either. Whoever holds your domain logins should make the change, so check who owns your domain, hosting and logins first. Contact forms also collect personal data, which matters under Indonesia’s new rules; see our post on the PDP Law and your website.

If your enquiries are going missing and you want a second pair of eyes, tell us about your business. Fixing form delivery is part of our systems and technology work.

Related work

Where this has been applied.

Departemen - SodraTech

Professional Services

Departemen MIPA UNHAS

Universitas Hasanuddin

An official departmental website presenting academic information, news and activities, built so staff can maintain it without technical help.

View Project
ITH - SodraTech

Professional Services

Admission ITH

Institut Teknologi BJ Habibie

A student admissions platform handling the full registration process online, from application through document upload to initial payment.

View Project
Kalimporo - SodraTech

Local & Growing Businesses

Desa Kalimporo

Desa Kalimporo

A village profile platform presenting governance structure, population data, local potential and village programmes to a wider audience.

View Project

Keep reading

Related articles.

Leave a comment

Your email address will not be published. Required fields are marked *

Next step

Tell us what you are trying to solve.

A short conversation is usually enough to tell whether there is a problem worth solving, and whether we are the right people to solve it.