Elementor's form widget is convenient: drag, drop, point at a mailbox, done. It is also one of the most commonly misconfigured sources of silent email loss on WordPress. The form reports success, the entry list shows the submission, but the notification never arrives at the team inbox. Or it arrives at some mailboxes but not others. Or it worked for months and then quietly stopped.
Every one of those symptoms comes down to the same root cause: Elementor forms hand notifications to WordPress's wp_mail() function, and wp_mail() on a default install does not produce deliverable mail in 2026. This guide walks through diagnosis, the log locations most people miss, and a remediation checklist.
Install an SMTP plugin, route wp_mail through a real authenticated relay, publish SPF and DKIM for the sending domain, and seed-test the form. If notifications still do not arrive, check the SMTP plugin's log — the most common failure is not delivery but authentication with the relay.
Why silent failure happens
Elementor's form workflow looks like this on submit:
- Browser POSTs the form to the Elementor AJAX endpoint.
- Elementor validates and records the entry.
- For each action configured on the form (Email, Email 2, Webhook, MailChimp, etc.) Elementor fires its handler.
- For an Email action, Elementor constructs the message and calls
wp_mail(). - If
wp_mail()returnstrue, Elementor marks the action successful. If it returnsfalse, the action is flagged failed but the submission still succeeds.
The important word is returns. wp_mail() returns true the moment PHPMailer hands the message to the configured transport. It does not wait for delivery. It does not check folder placement. If PHP mail() hands the message to the local MTA and the MTA later fails to deliver — or delivers to spam — the return value was already true and Elementor has no way to know.
Diagnosing a missing notification
Work from the outside in. The question is not "did Elementor try?" but "where did the message actually end up?".
Step 1: confirm Elementor fired the action
Open the form in Elementor editor, Content tab, Submissions. Every submission is logged with the actions it fired and their status. A green tick next to "Email" means wp_mail() returned true. A red icon means it returned false — you have a local-side problem and the SMTP plugin's log will tell you what.
Step 2: read the SMTP plugin log
This is the single most useful artifact on a WordPress site for email debugging, and most people forget it exists. All three major plugins keep it:
- WP Mail SMTP: WP Mail SMTP → Email Log. Shows every message, its status, the envelope sender, the body.
- FluentSMTP: FluentSMTP → Email Logs. Similar view, with a resend button.
- Post SMTP: Post SMTP → Email Log. Includes the full SMTP transcript from EHLO to QUIT if you enable debug mode.
A failed send here usually means an auth problem with the relay: expired API key, rotated password, revoked app password, wrong SMTP port, TLS mismatch. Fix the credentials and resend.
Step 3: seed-test the actual notification
If the SMTP plugin log shows delivery succeeded but the team inbox never received the message, the problem is placement, not delivery. Grab the raw message from the log, paste it into a placement tester, and read the per-provider verdicts. You will see exactly which providers binned it and why — authentication failure, DNSBL listing, content scoring.
The remediation checklist
- Install an SMTP plugin and connect to a real relay. Google Workspace SMTP is fine for low volume; Postmark, Brevo, Resend, or SES are better for consistent volume.
- Verify the sending domain in the relay. Publish the DKIM CNAMEs they give you.
- Publish an SPF record on the apex. Include the relay's mechanism. End with
-allor~all, not+all. - Publish a DMARC record at
_dmarc.yourdomain.com. Start atp=nonewithruareporting. Tighten later. - Set the form's From: to a mailbox on the sending domain — not the submitter's email, not a
noreply@gmail.com. - Use the submitter's email as Reply-To: via the
{{field id="email"}}shortcode. - Seed-test the rendered notification. Fix whatever fails. Re-test.
- Schedule a weekly seed test to catch drift.
From: "Studio Forms" <forms@studio.com>
Reply-To: [field id="name"] <[field id="email"]>
To: team@studio.com
Subject: New inquiry from [field id="name"]Elementor-specific gotchas
- Email 2 action. Many Elementor forms have two email actions — one to the team, one to the submitter. They have separate From:, To:, and Subject: fields. Check each. A valid team notification does not guarantee a valid submitter notification.
- Dynamic tags in From:. Elementor's dynamic tag feature can pull the From: address from a site setting. If someone edits that setting, every form's From: changes. Lock it to a literal mailbox on your sending domain.
- Global site settings. Elementor Pro sites sometimes set a site-wide email in Site Settings → Identity. That identity is used as a fallback in various places. Keep it on the sending domain.
- Webhook action with no Email action. Teams that route submissions through webhooks sometimes drop the Email action entirely. The audit trail then lives only in the webhook destination. Plan accordingly if you ever need to replay.
A native wp-admin plugin is in private beta — run placement tests from your dashboard and alert on drops.