Option 1: Do it yourself
Follow the steps in this guide. Free, and typically 30 minutes to a few hours of careful work.
Option 2: Just contact us
Skip every step below. $49/mo and it is sorted, or WhatsApp us right now.
Last updated: August 2026
First: confirm what's actually failing
Submit your own form. Three possible outcomes:
- The form errors on submit, that's a form plugin or JavaScript problem, not email. Check for a recent plugin update or conflict.
- The form says "sent" but nothing arrives, this is the classic case, and it's a mail delivery problem. Keep reading.
- Emails arrive but land in spam, a lighter version of the same problem: authentication. The same fix applies.
Also check your form plugin's entries database (WPForms, Gravity Forms, Contact Form 7 with a logging add-on all store submissions). This tells you two crucial things: whether leads are being captured at all, and how many you've already missed, it's common to discover weeks of silent lead loss.
Why did it break when I changed nothing?
Because the receiving side changed. In 2024, Gmail and Yahoo began enforcing strict authentication rules for senders, and Microsoft followed for Outlook in 2025. Unauthenticated mail, which is exactly what a default PHP mail() function sends, gets rejected or trashed without notice. Your form worked for years, then quietly stopped. Nobody emails you to say your emails aren't arriving. That's the cruel part.
The fix, step by step
Step 1, Install an SMTP plugin. On WordPress: WP Mail SMTP, FluentSMTP, or Post SMTP. All three are fine; FluentSMTP is free for all features.
Step 2, Pick a sending service. For a business site's form notifications, a transactional email service is the right tool: Brevo (300 emails/day free), SendGrid, Postmark, or Amazon SES. You can also send through your own Google Workspace or Microsoft 365 account, fine for low volume.
Step 3, Connect and authenticate. The plugin walks you through API keys. The critical part is sending from an address on your own domain (forms@yourdomain.com), never from a Gmail address.
Step 4, Add SPF, DKIM and DMARC records. These DNS records are what tell Gmail "this sender is legitimate." Your email service gives you the exact records; they go into your domain's DNS. This step is the difference between the inbox and the spam folder.
Step 5, Test three ways. Send a test to a Gmail address, an Outlook address, and your own domain. Check spam folders. Then set a calendar reminder to submit your own form monthly, a two-minute habit that catches the next silent failure.
What this failure actually costs
Run your own numbers: monthly form leads × close rate × average sale, divided by 30. A service business getting 25 leads a month, closing 20% at a $600 average job, loses roughly $100 for every day the form is down. Form failures we catch during onboarding have typically been broken for 2-6 weeks before anyone noticed. It is, by revenue impact, the most expensive "small" website problem there is.
This is exactly why our maintenance plans include a monthly forms successful-submit check, an engineer submits your forms and verifies delivery, every month, so the failure window is days, not weeks.
FAQ
My form worked yesterday and broke today, same cause? Sometimes it's simpler: an expired API key, a plugin update that reset SMTP settings, or your email service's free tier hitting its limit. Check the SMTP plugin's email log first, it shows exactly what failed.
Should form emails go to my personal Gmail? Receive them wherever you like, but also enable the form plugin's database storage and, ideally, a second notification recipient. Never let a single inbox be the only place a lead exists.
Is Contact Form 7 the problem? CF7 itself sends nothing to a database by default and relies fully on mail delivery, which makes silent loss more likely. Add the Flamingo plugin (same developer) to store submissions, or switch to a form plugin with built-in entries.
We use a page builder's built-in form, same fix? Yes. Elementor, Divi and Bricks forms all send through WordPress mail, so the SMTP plugin fixes them all at once.
You do not have to do any of this yourself
Skip the steps above. Our engineers handle security, updates, speed, backups and fixes for you, with a 12-minute average response and a 99.99% uptime target.