Contact form submissions disappearing is one of the most damaging problems a small business website can have. Potential customers submit enquiries that never arrive, and you never know. The failure is usually silent: no error shown to the user, no bounce notification, no log entry. This guide walks through how to diagnose the problem systematically and fix it permanently.
Before assuming it's an email delivery problem, confirm the form is actually submitting. Check the form plugin's submission log first. Contact Form 7 doesn't store submissions by default, but Flamingo (a companion plugin by the same developer) adds this functionality. WPForms and Gravity Forms store submissions natively. If submissions appear in the log, the form is working, the problem is email delivery.
If there's no log and no submissions, check for JavaScript errors in the browser console (F12 > Console) when submitting the form. Contact Form 7 uses AJAX submission, which can fail silently if a JavaScript conflict with another plugin or theme breaks the response handling. Try disabling other plugins one by one to identify a conflict.
Before any technical fixes, check your spam folder, both in your email client and in webmail (log in via browser). Contact form emails sent via PHP mail() have no authentication and are frequently filtered to spam. If you find them there, the fix is SMTP configuration (covered below), not a plugin issue.
Also check whether your email provider has a quarantine area separate from spam. Microsoft 365 has a security quarantine at protection.office.com where flagged messages are held. Google Workspace admin console has a similar function. Emails may be arriving at the server but being held before delivery.
A common misconfiguration in contact form plugins is using the visitor's email address as the "From" address. When your server sends an email claiming to be from visitor@gmail.com, receiving servers flag it as spoofed because your server is not authorised to send on behalf of Gmail. The email either bounces or goes to spam.
The fix is to set the "From" address to an address on your own domain: noreply@yourdomain.com or wordpress@yourdomain.com. In Contact Form 7, this is configured in the Mail tab of each form. Use the visitor's email in the "Reply-To" field instead, that way, clicking reply in your email client still goes to the person who submitted the form.
The permanent fix for contact form email delivery is routing through SMTP rather than PHP mail(). Install WP Mail SMTP, FluentSMTP, or Post SMTP. Configure it with your hosting SMTP credentials or a transactional service like Postmark or SendGrid.
For your hosting provider's SMTP: host is typically mail.yourdomain.com, port 587 (TLS), username is your full email address, password is the mailbox password. Once configured, use the plugin's built-in test email feature to confirm delivery before testing the contact form itself. If the test email arrives, the SMTP connection is working.
Even after fixing the delivery problem, enable submission logging so you have a fallback. If an email fails to deliver in the future, you can retrieve the submission data from the database rather than having it lost permanently. For Contact Form 7, install the Flamingo plugin. For WPForms, go to Settings > Notifications and also enable the Entries feature. For Gravity Forms, entry storage is enabled by default.
Consider also adding a success message that includes the visitor's own email address: "Thank you for your message. We'll reply to your@email.com within one business day." This lets the visitor verify you have their correct details and tells them to follow up if they don't hear back, a simple safeguard that catches a lot of genuine communication failures.
Contact Form 7: The most common issue is the "From" address misconfiguration described above. Set the From field to [your-name] <noreply@yourdomain.com> and Reply-To to [your-email]. Install Flamingo for submission storage. Pair with WP Mail SMTP for delivery reliability.
WPForms: Check Settings > Notifications > From Email. Change it to {admin_email} or a hardcoded address on your domain. Enable SMTP via WP Mail SMTP. WPForms' Pro version includes email delivery fail notifications, which alert you when a submission notification fails, worth the upgrade for businesses where contact form leads are important.
Gravity Forms: Notifications are configured per form under Forms > [Form Name] > Notifications. Set "From Email" to a fixed address on your domain. Gravity Forms has a built-in resend notification feature in the Entries view, useful for recovering from past delivery failures once SMTP is set up.
Submit a real test through your contact form using a personal email address. Check that the notification arrives in your business inbox (not spam). Reply to the notification email and confirm the reply goes to the address you entered in the form, not to your noreply@ sender address. Also confirm the visitor's auto-response (if you have one configured) arrives at your personal email.
Set a reminder to test your contact form monthly. These delivery failures often go unnoticed until a plugin update, PHP version change, or hosting migration disrupts the SMTP connection. A 2-minute monthly check prevents weeks of lost enquiries.
HostBible hosting includes SMTP support, dedicated mailboxes for transactional email, and a cPanel email management interface, making contact form email reliable from day one.
View Hosting Plans