You set up Forminator for your client’s contact form. Picked a slick template. Configured an admin notification AND a user confirmation. The form looks great, submissions roll in, the entries page shows everything being collected. But for some reason, no email shows up in the admin’s inbox — or it shows up hours later, or it lands in spam.
Forminator isn’t broken. The problem is one layer down: WordPress’swp_mail() function. Here’s how to fix it so every Forminator notification arrives reliably.
Why Forminator notifications miss
Forminator’s email notifications use WordPress’s built-in wp_mail() function under the hood. That function is a thin wrapper around PHP’s mail(), which:
- Sends from
[email protected]by default - Doesn’t sign messages with DKIM
- Goes through your shared hosting server’s mail handler, which is on shared IP pools
Modern Gmail and Outlook filtering rejects messages from this default sender before they ever reach your inbox. The Forminator submissions log will show the entry as “successful” because Forminator handed the message to wp_mail() and got an “OK” back — but the actual email never reached you.
WPMU DEV's docs acknowledge this
Diagnose your Forminator delivery problem
Run these checks:
- Submit your form. Use a personal Gmail. Wait 5 minutes. Check inbox AND spam.
- Check Forminator submissions. Forminator → Submissions. Did the submission show up? If yes, the form is working — only the email is broken.
- Review the email template in Forminator. Edit form → Email Notifications → admin notification → verify the recipient address is correct.
- Run mail-tester.com. Send a Forminator submission to mail-tester’s test address. Read the report. Below 7/10 = delivery problem.
The fix: install the SecureSMTP WordPress plugin
- Sign up at securessmtp.com/signup. Free tier covers 5,000 emails/month.
- Dashboard → Forms → Sites → + Add Site. Copy the site’s API key from the last step. It is shown only once.
- WordPress Admin → Plugins → Add New Plugin → Upload Plugin → upload the SecureSMTP plugin .zip → Install Now → Activate.
- In wp-admin open SecureSMTP → Settings, paste the key into API Key and click Save and test connection. You should see “Connection OK”.
- Under Email Delivery, tick Route outgoing email through SecureSMTP and save. Until you tick it, WordPress keeps sending with its own mailer.
- Submit your Forminator form. Once your sending domain is verified, the notification email should arrive within a minute.
Re-configure Forminator notifications for best deliverability
After installing SecureSMTP, the SAME Forminator email notifications you set up will work without changes. But while you’re here, optimize a few settings:
Know which From address is used
SecureSMTP decides the From address, not the From field in Forminator. New accounts send from their own verified sending domain (below). Until it is verified you can send test emails to yourself. Older accounts can keep using [email protected] with your sender name for a limited time, and the From address Forminator set becomes the Reply-To (unless the email already has one).
Add a Reply-To that matches the submitter
Forminator’s “Reply-To” field can be set to the dynamic field value {email-1} (or whichever field captures the submitter’s email). When you reply, the message goes to the form submitter, not bouncing back to your contact@ inbox.
Verify your sending domain in SecureSMTP
Add a sending domain in the SecureSMTP dashboard (any plan, including Free, can add one) and publish its DKIM TXT record (the advanced setup adds two more records). In the plugin, choose “Send from my own domain”. Once the domain is verified, Forminator notifications go out from your address, signed with DKIM as your domain. See Domains and DNS.
Verify it’s working
- Submit your form once more. The email should arrive within a minute.
- Check the Mail Log. wp-admin → SecureSMTP → Mail Log. The Forminator notification is listed with status Sent. The Email log in your SecureSMTP dashboard shows whether it was delivered.
- Run mail-tester.com again. Score should be 9+/10.
- Check the headers. DKIM should pass. DMARC passes for your own domain once you send from a verified sending domain.
Frequently asked questions
Does this work with Forminator quizzes, polls, and payment forms too?+
Yes. All four Forminator form types (contact form, quiz, poll, payment) use the same wp_mail() function to send notifications. The SecureSMTP plugin intercepts every wp_mail() call regardless of which Forminator module triggered it. Quiz result emails, poll vote confirmations, and payment receipts all benefit equally.
Will this work alongside Forminator's Mailchimp / HubSpot / Constant Contact integrations?+
Yes. Those integrations push form data to external services via their APIs — separate from the email notification layer. SecureSMTP only handles the email-sending step, so all your Mailchimp / HubSpot / Constant Contact integrations continue to work exactly as before.
Do I need Forminator Pro for this fix?+
No. The free version of Forminator uses wp_mail() exactly like Pro. Since the SecureSMTP plugin fixes wp_mail() at the WordPress level, it works equally well for Forminator Free and Pro installations.
What about Forminator's payment form receipts (Stripe / PayPal)?+
Stripe and PayPal send their own receipt emails directly from their systems — those are handled by Stripe / PayPal, not WordPress. Forminator's own confirmation emails (the ones triggered by the form's "Email Notifications" section) go through wp_mail() and benefit from the SecureSMTP fix. If you set up a custom payment receipt template in Forminator, that one is fixed.
Why is this happening on a managed WordPress host that "handles SMTP for me"?+
Most managed hosts (WP Engine, Kinsta, Cloudways) handle SMTP at the server level, but they typically send from a shared host-controlled domain (e.g. [email protected]), not from your custom domain. Gmail and Outlook see that as a sender mismatch and route to spam. The fix is the same as on unmanaged hosts: install the SecureSMTP plugin so notifications go through SecureSMTP, signed with DKIM. To send from your own address, verify a sending domain. Any plan, including Free, can add one, and new accounts need one.
What about Forminator's "Send email to the user" feature?+
The user confirmation email feature (where Forminator sends a "Thanks for contacting us" email to the form submitter) goes through wp_mail() too. Both the admin notification AND the user confirmation get the SecureSMTP delivery benefits. User confirmations land in their inbox instead of their spam folder, which dramatically improves response rates on auto-replies.
Ready to fix it?
Related guides
Contact form not sending email? Why it happens and how to fix it
The five places a form email can fail, and a ten-minute check to find yours.
Forminator SMTP
Send Forminator email through SecureSMTP.
Why your form must not send “From” the visitor’s email
Send from your domain, reply to the visitor. Settings for each form plugin.