Contact Form 7 not sending email: the gap between submitted and delivered
The form gets submitted, no quote request arrives and Google Ads conversions sit at zero. Why the mail fails, the order to check, and how to wire it to measurement.
Tecrube team
Marketing automation
“Form submitted” is not the same as “mail sent”
Contact Form 7's green “your message was sent” notice says the form reached the server, not that the email landed in your inbox. The two steps run on different systems: WordPress handles the first, the server's mail function or an SMTP service handles the second.
That is how an advertising business can believe the form “works” for weeks without receiving a single quote request. Google Ads shows zero conversions, the budget gets cut, and the real problem sits in the mail layer.
Why the mail does not go out
The most common cause is WordPress's default mail function sending without authentication; the receiving server treats it as spam or refuses it outright. The second is a “From” address that does not match your domain; SPF and DKIM fail and the mail is rejected.
The third is the hosting provider blocking the outgoing mail port, and the fourth is broken field tags in the mail template after a plugin update. Each has a different symptom and should be ruled out in order.
The order to check
First, fill in and submit the form yourself and wait five minutes; check the spam folder too. If the mail landed in spam the issue is authentication: install an SMTP plugin, define a sender account that matches your domain and add SPF and DKIM records.
If no mail arrives at all, look at the mail log in your hosting panel; a “mail_failed” style entry means the server is refusing to send and an SMTP service is the only lasting fix. If the log is clean, check the form template: recipient address, subject line and the field tags in the body.
Mail first, ad data second
Fiddling with conversion tracking before the mail is fixed breaks the order; make sure the request reaches you first. Then move to measurement: Contact Form 7 fires a browser event on successful submission, and you need a trigger in Tag Manager that listens for it plus a tag that sends an event to GA4.
With the Tecrube connector that step ends in chat: “create a trigger and a GA4 event tag in GTM for the Contact Form 7 submission, mark the event as a conversion in GA4 and import it into Google Ads”. Every part arrives as a preview and is applied on your approval; publishing on the GTM side is still yours.
GA4 sees the submission, Google Ads does not
In that case the form and measurement work and the bridge is missing. For a GA4 conversion to reach the Google Ads account, the two accounts must be linked and the conversion must be imported on the Google Ads side. Asking “list the conversions imported from GA4 into Google Ads” in chat shows the gap at a glance.
If the campaign bidding strategy depends on that conversion, allow two weeks of learning once conversions start flowing; changing the budget during that time resets the learning.
A regular testing habit
Fill in the form yourself once a month and verify in three steps that the mail arrives, the event shows in GA4 and the conversion shows in Google Ads. In Tecrube the last two steps are a single question and, being reads, spend no credits.
Repeat the test after any plugin or theme update; most form breakages begin in the first week after an update and go unnoticed for a month.
Tying the test to a calendar slot, such as the first Monday of each month, keeps it from being forgotten; a ten-minute check is the cheapest insurance against a month of lost requests.
Spam protection and false alarms
If your test submission comes back flagged as “spam”, the form is not broken; spam protection is working. reCAPTCHA, Akismet or a honeypot field may have taken your test for a bot. The fix is not to switch protection off but to check its threshold and repeat the test from a real browser, filling the form at a normal pace.
To find out whether real customers are also being flagged, look at the plugin's spam records. If dozens of quote requests written under real names piled up in spam over a week, the protection is too strict and is costing you conversions. Loosen the threshold and watch for a few days.
After changing the spam setting, check the measurement side too. Submissions flagged as spam produce no GA4 event, so while protection is too strict the conversion counts in GA4 and Google Ads are lower than reality. If conversions jump in the week after you loosen the setting, that is measurement being fixed rather than campaign success; keep it in mind when reading the bidding strategy.