Kaiizen Mail Log
Email logging for WordPress

Every email, logged.

Kaiizen Mail Log records every wp_mail() call your site makes — WooCommerce receipts, password resets, form notifications, cron digests, all of it — into a dedicated, indexed table built to stay fast past a million rows.

Why

By default, WordPress sends mail into a void.

wp_mail() either works or it doesn't, and most of the time nobody finds out which until a customer says their receipt never arrived. The message itself, the plugin that sent it, the SMTP response, whether it was even attempted — none of that survives past the request that generated it.

Kaiizen Mail Log sits in front of every call to wp_mail() — before it's sent and after — and keeps a permanent, searchable record. Not in wp_posts, where it would bloat your content tables; in its own indexed table, designed for the volume a busy site actually produces.

Features

What ships in 1.0

[SHIPPED]

A dedicated, indexed table

Never touches wp_posts. Indexed on status, subject, recipient, sender, and source plugin, plus a FULLTEXT index across subject, body, and headers for search that stays fast at scale.

[SHIPPED]

A full email viewer

Headers, HTML and plain-text bodies, attachments, the raw SMTP response, and exactly which plugin, theme, cron job, or REST route triggered the send.

[SHIPPED]

Resend, with edits

Change the recipient, subject, or body before resending. The resend itself gets logged too.

[SHIPPED]

CSV and JSON export

Filtered or full, streamed in chunks so exporting hundreds of thousands of rows doesn't exhaust memory.

[SHIPPED]

Automatic retention

Keep 7, 30, 90, 180, 365 days, or forever. A daily cron clears out what's past its date on its own.

[SHIPPED]

REST API and WP-CLI

mailscribe/v1 REST routes, and wp mailscribe list|view|delete|cleanup|export for everything scriptable.

[SHIPPED]

Zero telemetry

No tracking, no phone-home, no premium tier hiding the features that matter. Free, in full, forever.

Built for scale

Fast at row one. Still fast at row five million.

Most email logs are fine until they aren't — a table that was instant at ten thousand rows and unusable at two million. Mail Log is built around the parts of that problem that are actually solvable.

Keyset pagination

Pages are fetched by WHERE id <, not OFFSET — page 4,000 costs the same as page one.

FULLTEXT search

Subject, body, and headers are indexed for search, not scanned row by row on every keystroke.

Chunked everything

Exports and cleanup run in bounded batches, so a five-million-row table never becomes a memory-limit error.

Install

Zero configuration, on purpose

Upload the plugin folder to /wp-content/plugins/.

Activate it from the Plugins screen.

That's it. Emails start logging immediately — visit Kaiizen Mail Log in the admin menu.

# not yet listed on WordPress.org — install manually for now
wp-content/plugins/kaiizen-mail-log/
$ wp plugin activate kaiizen-mail-log
Requires WordPress 6.0+ and PHP 7.0+. No setup screen to configure first.