Logs every outgoing wp_mail() call and local send failures. Useful for debugging. No bloat, no upsells.
| Date | Status | To | Subject | Context |
|---|---|---|---|---|
| 2026-03-09 09:14:02 | Attempted | user@example.com | Your order has been received | frontend |
| 2026-03-09 09:11:38 | Failed | admin@example.com | New contact form submission | frontend |
| 2026-03-09 08:55:10 | Attempted | user@example.com | Password reset request | admin |
What it does
Hooks into wp_mail() and records every outgoing email attempt. If WordPress reports a local send failure, that gets recorded too â attached to the same log entry.
Records every wp_mail() call with full data: recipients, subject, body, headers, attachments, and content type.
When WordPress reports a send failure via wp_mail_failed, the error is attached to the original log entry.
Inspect any log entry in full â body, headers, error data, request context. Useful for debugging CF7, WooCommerce, and SMTP issues.
Logs expire automatically. Default retention is 30 days. Configurable from 7 to 365 days via Settings.
The log is restricted to administrators. No public endpoints, no exposed data.
No dashboard widgets, no top-level menus, no upsells, no nags. Lives quietly under Tools â Mail Log.
Scope
This plugin reflects what happened inside WordPress at send time. It does not prove delivery to the recipient.
Installation
Standard WordPress plugin installation. No configuration required to start logging.
wp_mail() call â submit a Contact Form 7 form, place a WooCommerce test order, or use the password reset flow.