WordPress forms7 min read

Elementor forms: why submissions disappear

The form shows a green success message, the submitter closes the tab, and nothing lands in the team inbox. The form did not fail — the email did. Here is how to find out where it went, and how to stop it happening again.

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.

The quick answer

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:

  1. Browser POSTs the form to the Elementor AJAX endpoint.
  2. Elementor validates and records the entry.
  3. For each action configured on the form (Email, Email 2, Webhook, MailChimp, etc.) Elementor fires its handler.
  4. For an Email action, Elementor constructs the message and calls wp_mail().
  5. If wp_mail() returns true, Elementor marks the action successful. If it returns false, 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

  1. 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.
  2. Verify the sending domain in the relay. Publish the DKIM CNAMEs they give you.
  3. Publish an SPF record on the apex. Include the relay's mechanism. End with -all or ~all, not +all.
  4. Publish a DMARC record at _dmarc.yourdomain.com. Start at p=none with rua reporting. Tighten later.
  5. Set the form's From: to a mailbox on the sending domain — not the submitter's email, not a noreply@gmail.com.
  6. Use the submitter's email as Reply-To: via the {{field id="email"}} shortcode.
  7. Seed-test the rendered notification. Fix whatever fails. Re-test.
  8. 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.
WordPress integration in beta

A native wp-admin plugin is in private beta — run placement tests from your dashboard and alert on drops.

→ Join the beta waitlist

Frequently asked questions

Why does the Elementor form say success but I never get the email?

Because Elementor considers the action successful as soon as wp_mail returns true. wp_mail returns true the moment PHPMailer hands the message to its transport — it does not wait for delivery. Real delivery status lives in the SMTP plugin log.

Does the Elementor Pro Submissions feature replace email notifications?

It stores submissions in the database so you can view them even if email fails, but it does not fix the email. If you rely on real-time notifications, treat the Submissions view as a fallback, not a replacement, and still fix deliverability.

Can I use my personal Gmail as the Elementor From: address?

No. Gmail's DMARC policy is p=reject. Using @gmail.com in From: will cause most receivers to reject the message outright. Always use a mailbox on a domain you control DNS for.

Why do notifications arrive at team@ but not at admin@ on the same domain?

Most often one mailbox is on a provider with stricter filtering (Microsoft 365 default policy blocks unauthenticated mail more aggressively than Google Workspace, for example). The fix is at the authentication layer, not at the mailbox.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required