A WordPress contact form can accept submissions while the notification email never arrives. The cause may be the form configuration, the site's mail transport, SMTP authentication, DNS records, spam filtering or the receiving mailbox. Work through the checks below in order rather than assuming one universal cause.
WordPress sends emails using the PHP mail() function by default. Some hosting environments restrict or poorly support unauthenticated PHP mail, which can make delivery unreliable. When PHP mail is blocked, contact form submissions silently fail — no error, no delivery, no indication anything went wrong.
A common solution is to route your WordPress emails through a proper SMTP (Simple Mail Transfer Protocol) server, which authenticates your messages and can improve delivery reliability and make failures easier to diagnose.
Before anything else, check your spam folder. Emails sent via PHP mail() often land there rather than disappearing entirely. Also check any email filters or rules that might be auto-archiving messages.
In your contact form plugin settings (CF7, WPForms, Gravity Forms etc.), confirm the "send to" email address is correct. A typo in the recipient email is a surprisingly common cause.
Submit the form yourself with a test message. Check if your form plugin logs the submission — Contact Form 7 with Flamingo, or WPForms with entry storage enabled, will show if the form received the data even if the email failed.
WP Mail SMTP is one widely used option for configuring authenticated email delivery from WordPress. Install it from Plugins → Add New and search "WP Mail SMTP."
Once installed, go to WP Mail SMTP → Settings and choose your mailer. Common mailer options include:
Fill in the SMTP host, port, username, and password from your chosen provider. For Gmail OAuth, follow the on-screen wizard — follow the provider's current setup steps carefully.
Use WP Mail SMTP's built-in Email Test tab (WP Mail SMTP → Tools → Email Test). Enter your email address and click Send. You'll get an instant success or failure message with details.
Once the test passes, go to your contact page and submit a real test message to confirm end-to-end delivery.
✅ After SMTP is configured, send a real form submission and verify delivery in the receiving mailbox. A successful SMTP connection improves the sending path, but spam filtering, DNS alignment and recipient-side rules can still affect delivery.
In CF7, go to your form → Mail tab. Make sure the From field uses your domain email (e.g. hello@yourdomain.com), not a Gmail or Hotmail address. Using a From address that doesn't match your domain's SPF record causes delivery failures.
Check WPForms → Settings → Email for your default From email. Also check individual form notifications under the form's Settings → Notifications tab.
Go to your form → Settings → Notifications. Check the From Email and ensure "Send To" is correct. Gravity Forms also has a "Failed Notifications" log if you have logging enabled.
Do I need a paid plugin to fix WordPress email delivery?
No. The free version of WP Mail SMTP supports Gmail, SendGrid, Mailgun and other providers — more than enough for most sites. The paid version adds features like email logs and backup connections, but isn't required for the core fix.
Why does my form work on localhost but not on my live site?
Local development environments typically have PHP mail configured for testing. Live hosting servers are much stricter. This is normal — set up SMTP on the live site and it'll work consistently.
My SMTP is configured but emails still fail. What next?
Check if your domain has SPF and DKIM records configured in your DNS. Without these, even authenticated SMTP emails can land in spam. Your hosting provider can help set these up, or contact WPFixMate for a full email deliverability audit.
WPFixMate can review the form configuration, SMTP connection, DNS authentication and end-to-end delivery path, then document any remaining recipient-side limitations.
Get WordPress Email Delivery Help