wp_email_delivery_failed
Severity: Warning
Signal: wp.email — payload.success = false
What this signal means
WordPress attempted to send an email and failed. This covers all WordPress emails: contact form submissions, password resets, order confirmations, comment notifications, and admin alerts.
What surprise this prevents
Silent contact form failures, missed password reset requests, and lost order confirmations — users who never received a response and never told you.
Why it matters
Visitors may be submitting contact forms, completing purchases, or requesting password resets without receiving any response. Silent email failure degrades user experience and can cause lost leads or revenue.
Investigate
View entity alerts in Logystera →
Check the alert payload for:
payload.to— which recipient address failed?payload.error_code— what didwp_mail()return?- When did failures start? Was it after a change (new plugin, new hosting config)?
Recommended actions
-
Check your SMTP configuration. WordPress uses
wp_mail()which by default calls PHP'smail(). On most managed/shared hosts,mail()is either blocked or misconfigured. -
Install an SMTP plugin. Replace the default mailer with a dedicated SMTP connection:
- WP Mail SMTP (recommended)
-
Configure with your email provider: Gmail, SendGrid, Mailgun, Resend, Postmark.
-
Send a test email. If you have WP Mail SMTP installed, go to WP Mail SMTP → Tools → Email Test and send a test.
-
Check your domain's email authentication (SPF, DKIM, DMARC):
- Check SPF:
dig TXT yourdomain.com | grep spf - If you're sending from a new IP or domain, add it to your SPF record.
-
DKIM must be configured with your SMTP provider.
-
Check hosting-level email restrictions. Some shared hosts block outbound SMTP on port 25. Use port 587 (STARTTLS) or 465 (SSL) with your provider.
-
Review your sending domain reputation at MXToolbox Blacklist Check — if your domain or server IP is blacklisted, emails will bounce silently.
-
Check server logs (if accessible):
bash tail -f /var/log/mail.log # or tail -f /var/log/maillog
When to safely ignore
A single isolated failure may indicate a transient SMTP issue or a bad recipient address. If the signal fires once and does not recur, investigate the recipient address before escalating.
If you have recently migrated hosts or changed your SMTP configuration and failures began at that point, the root cause is likely configuration rather than an ongoing delivery problem.
Signal reference
{
"event_type": "wp.email",
"payload": {
"success": false,
"to": "[email protected]",
"subject": "Your order has been received",
"error_code": "SMTP_CONNECT_FAILED"
}
}