contact form looks fine but i'm not getting emails
this is the most common silent failure mode of small-business websites. four reasons it usually is — and how a public check can rule out the wrong ones.
the silent contact-form failure is the worst kind of website bug because it does not look like a bug. the form posts, the success message shows, the visitor walks away thinking you got their message. you find out months later when someone asks why you never replied. the cause is rarely the form itself — the form code on most modern sites works. the cause is almost always the sending pipeline: how the email gets from your web server to your inbox.
what this looks like to a visitor
- form says "thanks" after submit but no email arrives
- you get test emails sometimes but customer emails never
- form-submitted emails go into your gmail spam silently
- form sometimes works but breaks every few weeks
what a public browser check can see
we look for a real visible <form> with an email or message input on the homepage, the contact page, or a sticky cta. if there is no form path at all, that is the first issue we surface.
we extract mailto: addresses, tel: links, whatsapp links, and visible booking ctas from the homepage. you may already have a fallback path you forgot about.
we cannot submit your form (we never do, by policy — no scraping, no account creation, no form spam). so we cannot directly verify delivery. but we can tell you exactly what the public check sees and recommend the fix.
no spf / dkim / dmarc dns records on your sending domain; web host sending via shared php mail() which gets junked; smtp credentials revoked by your mail provider; an old wordpress plugin not updated; a domain change without re-verifying the form action url.
we do not log into your site. we do not scrape customer data. we open your public homepage in a real browser session and report what we see. no security claims unless we can prove them from the public surface.
the deeper picture
four delivery paths break: (1) the web host uses php mail() to send. this is the default on shared wordpress hosts and it is the worst possible option for deliverability. major mail providers (gmail, outlook, fastmail) put these straight to spam or drop them silently. (2) the sending domain has no spf, dkim, or dmarc dns records. without these, the receiving mail server cannot verify the sender is who they say they are, and the default is to junk the message. (3) credentials revoked. you set up smtp through google workspace six months ago using an app password. google rotated the password or you changed your account 2fa, and the form is still sending against the dead credential. it silently fails. (4) plugin update. wp mail smtp got updated and reset its config, or a security plugin started blocking outbound smtp on port 587. happens after routine updates.
fix it yourself
set up a real smtp account (gmail workspace, fastmail, microsoft 365, or a transactional service like resend / postmark / sendgrid). install wp mail smtp on wordpress, configure it to use the smtp account. send yourself a test message from the form. check spf, dkim, dmarc records on your sending domain via any free mail tester.
run the audit on YOUR site — check for "contact form looks fine but i'm not getting emails"
we open your homepage in a real headless browser and report what we see. no login, no plugin install.
public browser check · no signup · result on the next page
or pay us once.
you can fix this yourself in about ninety minutes if you are comfortable with dns records and smtp setup. if you do not want to learn what dkim is, the $99 contact form repair: we set up real smtp through a deliverability-respected provider, configure spf/dkim/dmarc on your sending domain, test delivery to gmail/outlook/yahoo, hand back proof. done in two days.
frequently asked
maybe. self-tests often pass because your own inbox already trusts your sending domain. the real test is whether messages reach gmail, outlook, and yahoo from an outside address. if your form submissions come from random domains, that is what matters.
no. wp mail smtp + a real smtp account (gmail workspace, postmark, resend) keeps wordpress as-is and just fixes the sending pipeline.
we can — but spf/dkim/dmarc records live on dns, and you need access to your dns to change them. the $99 fix includes the dns work; you give us a one-time access window and we do not need permanent access.
usually a plugin update or a credential rotation. the fix includes setting up monitoring that pings the smtp endpoint once a day so silent failures get caught early. monitoring is $19/mo if you want it ongoing; one-time fix without monitoring is also fine for most sites.
other fix guides
- why is my wordpress site slow— what an external browser sees when your wordpress homepage takes too long to render — and the four things that are almost always behind it.
- shopify checkout feels broken — how to find out why— a public browser check of your shopify storefront can surface the visible reasons people abandon. here is what we look for.
- wix site not showing on google — what a public check can tell you— your wix site exists, but it does not appear in google search results. four reasons that explain almost every case.
- squarespace site loads slowly on mobile— squarespace is well-built but slow by default on phones because of the way it serves images and fonts. four moves usually fix it.
built by vøiddo — a small studio shipping ai-flavoured products, free dev tools, chrome extensions and weird browser games. legal · support@voiddo.com