
Elementor's own help pages are unusually honest about this, and the honesty is the whole answer. Two sentences from their troubleshooting docs explain most missing-email cases before you touch a single setting.
"Elementor uses WordPress'wp_mailfunction to send emails. Your web host takes the sent email, processes it, and sends it."
"Thewp_mailfunction uses the PHP send_mail function by default. But if it is disabled on that server, then email won't send."elementor.com — Server errors
And, on why hosts disable it:
"Web hosting servers can deactivate the PHP function responsible for email transmission… a precautionary measure meant to prevent the misuse of the server for spamming purposes."elementor.com
So: the form hands the email to WordPress, WordPress hands it to the host, and the host may have quietly closed that door on purpose. Nothing in the front end will tell you. The visitor sees the success message; the widget has done everything it can do.
The most embarrassing and the most common. Elementor forms only send mail if you added the Email action under Actions After Submit. Forget it, or lose it while duplicating a template, and the form works perfectly — collects the submission, shows a success message — and emails nobody. Everything looks right except the part you cannot see.
Elementor's docs are direct about this: set the form's From address to the same domain as your website, and put the visitor's address in Reply-To. If your site is example.com and your From is the visitor's gmail.com address, you are asking a mail server to accept a message claiming to be from a domain you do not own, sent from an IP you do not own. Modern receivers call that spoofing and treat it accordingly.
Elementor's own documentation flags this, including the reason:
"These emails may end up in the spam folder, especially now that providers like Gmail are increasingly strict about email reputation and authentication."elementor.com
Unauthenticated mail from a shared hosting IP is a worse and worse bet every year. Every log will say the mail was sent. It was. It is in Junk.
A peculiar one, and worth knowing: if a form field has no ID, its value will not appear in the email when the [all-fields] shortcode is used. So you receive a notification with the fields you actually needed missing. The form works, the email works, the lead is unusable.
Elementor's troubleshooting suggests exactly what you would expect — disable everything except Elementor and Elementor Pro, switch to a default theme — which tells you how often an update to something unrelated takes the form's submit handler down with it.
Submissions are stored by default. The Collect Submissions action is on out of the box, entries go into the database, and you can view them under Elementor → Submissions and export to CSV.
That is a genuinely better default than Contact Form 7 (which stores nothing, and whose docs warn you may "lose important messages forever") or WPForms Lite (which does not store entries without a paid license). If mail breaks on an Elementor site, the lead is still recorded.
But notice what it does and does not solve. The lead is preserved. Nobody is notified. Your client is still not calling that customer back, because nothing told them there was a customer to call. A lead sitting unread in a dashboard for three weeks is, commercially, a lost lead with better bookkeeping.
Availability from several locations in Europe and the US, SSL, domain expiry and WordPress health — free, no sign-up.
Check a site[all-fields] renders the whole lead.Every fix on that list is a point-in-time repair. The chain has many links — plugin, WordPress, SMTP credentials, DNS records, the host's outbound policy, the recipient's spam filter — and each of them can change without anyone touching your site. An SMTP plugin update. A rotated API key. A stricter policy at the client's mail provider. A DNS change that breaks DKIM alignment.
When it breaks, the form will keep showing the success message. Submissions will keep filling up. And the first person to notice will be your client, weeks later, asking why nobody replied to their enquiry — the worst possible way for this to surface.
Not a log entry. A "delivered" status from a sending service only means that service handed the message to the recipient's mail server; it says nothing about inbox versus junk. The only proof that a lead reaches a human is to send one and then find it in the mailbox.
That is what our form check does: on a schedule it submits a synthetic lead through the real form, with a unique marker in the body, then looks for that marker in a monitored inbox over IMAP. Arrives → the whole chain works, plugin to spam filter. Doesn't arrive → you get an alert, while the client is still blissfully unaware there was anything to know.
It is the least clever monitoring we do. It is also the only kind that could have caught any of the failures in this article.
Elementor's docs state it uses WordPress's wp_mail function, which uses PHP's mail function by default — and if the host disabled it, email will not send. Other causes: no Email action added under Actions After Submit, a From address outside your domain, or the message being filtered into spam.
Usually a form field without an ID. Elementor's docs warn that without a valid ID, the field value will not appear in the email when [all-fields] is used — so the notification arrives with the important fields missing.
Yes — Collect Submissions is enabled by default, entries go to the database and can be exported to CSV. That means a failed email doesn't lose the lead. It does mean nobody gets notified about it.
No. It means the sending service handed the message to the recipient's mail server. It says nothing about inbox versus junk. The only certainty is submitting a test lead and verifying it appears in the real mailbox.
Pingvera submits a test lead and confirms it reaches the inbox, end to end. Plus availability, SSL, domain and WordPress health. Free for up to 5 sites.
Start freeRead next: Contact Form 7 not sending email and WPForms not sending email.