WordPress plugin intelligence profile

Wonderful SMTP Mailer and Log

Simple, bloatware-free SMTP email plugin: sends by SMTP, logs the result, resends failures. Minimal and secure on purpose, and it will stay minimal.

WP PlugIndex snapshot

Current directory snapshot

Tested up to WordPress 7.1
Current version1.3.0
WordPress coverageTested up to WordPress 7.1
Minimum stackWP 6.2 · PHP 7.4
Directory statusactive
Last directory update7 Oct 202626d ago
Active installations30Adoption metric — not a quality score
WordPress.org rating5.0 / 5 from 1 ratings
Official packageDirect from WordPress.org

Repository metrics are context, not quality scores. Active installations measure adoption and can strongly reflect a plugin’s age and historical popularity. Ratings, recent updates and “Tested up to” metadata also do not guarantee modern code, error-free operation, security, feature completeness or suitability for a particular site. Why active installs don’t tell the whole story →

WP PlugIndex currently records Wonderful SMTP Mailer and Log version 1.3.0 as active, updated 26d ago and tested up to WordPress 7.1.

Overview

About this plugin

A small SMTP plugin that does three things and nothing else: it sends your mail

over SMTP, it writes down what happened, and it tells a webhook when a message

fails.

We built it because the SMTP plugin we had relied on for years kept growing.

More features, more integrations, more settings — most of which we simply

didn’t need. Eventually, that added complexity started causing problems on

production sites.

Many alternatives had gone the same way: email logs behind paid tiers, API

providers, OAuth flows, deliverability dashboards, upgrade banners, and entire

mail suites around what should be a simple job.

We wanted the opposite: connect to a mail server, send the email, log the

result, and stay out of the way.

Email is critical infrastructure. Every additional feature is another dependency

and another potential failure point — and when mail breaks, customers notice

immediately.

So we built the slim alternative we wanted ourselves, and we run it in our own

production environment and on our client sites.

What it does

  • Routes every wp_mail() call over your SMTP server — WooCommerce, contact

forms, core password resets, all of it, without touching their code.

  • Host, port, encryption (STARTTLS, SSL/TLS or none), optional authentication.
  • Sender address and name, with an explicit switch for whether they override a

sender another plugin already set.

  • A connection check that logs in to your mail server and hangs up without

sending anything — the safe way to find out whether the settings are right.

  • A test message that shows you the actual SMTP conversation — when a server

139 Authentication unsuccessful”, you read that line instead

of guessing.

  • A detail view for every logged message: the full server response, the headers,

the attachments and the message body as source, so you can see exactly what a

resend would deliver.

  • An email log: date, recipient, subject, status and the server’s response,

with its own menu entry rather than another item buried under Settings.

  • A date range filter, so an entry from six months ago is two clicks away

instead of forty pages down.

  • Full-text search across recipient, subject and message body, scoped to the

period you filtered — “find the mail that mentioned invoice 0912”.

  • Attachments listed on every logged message, downloadable in one click and

re-attached automatically when you resend.

  • Attachment storage — the part most email logs leave out. A log that records

a filename cannot resend the file, and plenty of plugins delete theirs the

moment the message is sent. Switch storage on and a copy is kept for as many

days as you choose, in a directory that denies web access, so a message resent

three weeks later still carries what it was sent with. Off by default, and

every copy is deleted again on schedule.

  • Delivery counts for the filtered period, next to the all-time totals.
  • A resend button on every logged message, which asks before it sends and lets

you correct the address first — the usual reason to resend is that the

original one was mistyped.

  • A log-only mode that records every message and hands none of them to the

mail server — the setting a staging site needs so a real customer can never

receive anything.

  • A dashboard as the landing screen: delivery counts for the last seven days,

the active delivery mode, and every setting with its current value and where

it came from — the database, or a constant your docker-compose passed in.

  • An optional webhook that fires on failure, so Zapier, n8n, Make or your own

endpoint can raise an alert.

  • Retry on failure, on by default: a rejected message is sent once more

after a wait you choose (one minute by default), and only if that fails too

is it marked as failed and the webhook alerted. Errors that are gone a minute

later — an overloaded relay, greylisting, a connection or TLS handshake that

timed out — stop showing up as failures you have to resend by hand.

What it deliberately does not do

No API providers, no OAuth, no fallback connections, no deliverability score, no

dashboard widget, no newsletter integration, no pro tier, no advertising for

one, and no upsell notices. If you need those, one of the big plugins will serve

you better, and that is a fine outcome.

Safety rails

  • With no SMTP host configured the plugin stays out of the way entirely and

WordPress keeps using PHP mail() — installing it cannot take your email

down.

-

php, following

one mechanical rule: the option name in upper case. That keeps credentials out

of the database and out of any dump copied to a staging site, and lets a Docker

container pass them in as environment variables:

define( ‘WONDERFUL_SMTP_MAILER_AND_LOG_HOST’, getenv( ‘SMTP_HOST’ ) );

define( ‘WONDERFUL_SMTP_MAILER_AND_LOG_PASSWORD’, getenv( ‘SMTP_PASSWORD’ ) );

A defined constant wins over the settings field, and the field is then shown

read-only so the two cannot silently disagree.

  • No runtime dependencies. The plugin uses the PHPMailer that ships with

WordPress itself — there is no vendor directory and nothing to keep patched.

  • The stored password is never written into the HTML of the settings form. A

toggle next to the field fetches it on request, so it stays out of the page

source, the browser cache and any screenshot until you deliberately ask.

  • Log-only mode is announced on every admin screen, not just this plugin’s own.

It is a silent state by design — wp_mail() keeps reporting success — and the

person who needs the warning is the one wondering why a customer never got

their confirmation.

  • Stored attachments are deleted when the plugin is deactivated, not just when it

is uninstalled — switching it off should not leave a folder of customer

documents on the server.

  • “Force sender” is off by default, so plugins that set their own sender on

purpose keep it.

  • The automatic retry happens exactly once per message. A second rejection is

final, so a failing server can never turn into a mail loop.

How it is built

Development is test driven, and the suite covers the behaviour that decides

whether your mail actually leaves the building: that an unconfigured plugin keeps

its hands off PHPMailer entirely, that “none” really disables TLS instead of

quietly upgrading, that a sender another plugin set on purpose survives, that a

corrupt delivery-mode value falls back to sending rather than silently swallowing

your mail, that log-only mode never once reaches the mailer, that the retention

purge deletes what is past the cutoff and nothing else, and that a webhook fires

with the failure details but no credentials.

4

org’s own Plugin Check every single time, before

a release is built at all. An error in any of them stops the release — the

pipeline refuses, it is not a checklist someone waves through.

The tests themselves stay in the repository and are not part of this download.

Nothing ships here that your site does not need at runtime: a small set of PHP

classes and four assets, with no vendor directory and no framework.

That discipline is also why the feature list is short. Every feature is a promise

that has to keep working.

External services

This plugin contacts two kinds of external endpoints, both of which you

configure yourself. It has no vendor backend, sends no telemetry, and phones

home nowhere.

1. Your SMTP server

The host you enter in the settings receives your outgoing messages: sender,

recipients, subject, body, attachments, and — if authentication is enabled — the

username and password you configured. This is the entire purpose of the plugin.

Which company that server belongs to, and which terms and privacy policy apply,

is determined by you when you enter the host name. No connection is made until

you configure one.

2. Your failure webhook (optional, off by default)

If, and only if, you fill in the webhook field, a JSON request of the form

{“text”: “…”} is sent to that URL whenever a message fails. It contains your

site URL, the recipient address, the subject and the error the mail server

returned. It contains no message body and no credentials. Nothing is sent while

the field is empty. The receiving service is one you choose — Zapier, n8n, Make,

Slack or your own endpoint — and its terms and privacy policy apply to what you

send it.

Message contents and log entries stay in your own database. No data is

transmitted to Wonderful Plugins.

WordPress.org metadata

Plugin tags

Topics listed for this plugin in the WordPress.org directory.

  • email
  • log
  • mail
  • smtp
  • webhook
Compatibility & maintenance

Compatibility & maintenance

Tested with WP 7.1

Marked as tested with the current WordPress 7.1 release.

Current WordPress releaseWordPress 7.1
WordPress.org Tested up to7.1
Minimum requirementsWordPress 6.2 · PHP 7.4
Update activity7 Oct 202626d ago

“Tested up to” is directory metadata supplied by the plugin author. WP PlugIndex does not turn an older declaration into a claim that the plugin is incompatible.

Changes recorded by WP PlugIndex

Recent tracked changes

Version1.2.11.3.0
WordPress compatibility7.1.27.1.3
Version1.1.01.2.1
Version1.0.11.1.0
WordPress compatibility7.17.1.2
Tracking & source

WP PlugIndex tracks public WordPress.org directory metadata and records selected version, compatibility and availability changes as they are detected.

Plugin watchlist

Watch this plugin

Sign in to your WP PlugIndex account or create a free account. Free accounts can watch up to 5 plugins and see what changed.

Watch limit

Watchlist limit reached

You have reached your current active watch limit.