Lean SMTP makes WordPress send its mail through a real mail service instead of the host's default PHP mail, which improves deliverability. It is deliberately small: a handful of transports and a handful of settings.
Everything is free. There is no pro version, no paid add-ons, no locked features, no account to create, and no upsell banners in the admin. Every mailer, the send log, the failure alerts, WP-CLI, offline mode and encrypted credential storage are all in this plugin, for everyone. Nothing phones home. The plugin sends no telemetry or usage data anywhere, and it makes no network requests other than delivering your mail to the provider you configured.
Website:
https://leansmtp.com
Every provider below also offers plain SMTP, so the SMTP transport alone covers all of them. The API transports exist for hosts that block outbound mail ports (25/465/587), which is common on shared hosting and some managed platforms.
- SMTP: any host/port with TLS, SSL, or no encryption, optional username/password.
- Amazon SES (API): the SES v2 API, signed with a hand-rolled AWS Signature V4 signer, so no AWS SDK is bundled.
- Mailgun (API): US or EU region, sending the message as MIME so attachments and formatting survive untouched.
- Resend (API): a single API key, nothing else to configure.
- Offline: record every message and send nothing, for staging sites that must never mail real customers. wp_mail() still reports success, so plugins behave exactly as they would in production.
- From identity: set the From name and address, and optionally force them over anything another plugin sets.
- Reply-To: a site-wide default for replies, useful when the From address is a no-reply. A Reply-To the message set itself is always kept.
- wp-config.php overrides: pin any setting in code instead of the database, so credentials can live in environment variables and never diverge between environments.
- Failure alerts: an admin notice when mail stops going out, so a broken mailer isn't discovered via missed password resets. It clears itself once mail works again.
- WP-CLI:
wp lean-smtp test and wp lean-smtp status.
- Test email: a button on the settings page to confirm your configuration works.
- Send log: optional. Records each send (recipient, subject, result) on an Email Log screen with paging, a status filter, search, and per-row or bulk delete. Stored in your own database and never sent anywhere. The message headers, attachment filenames and body can each be recorded too, behind their own settings and off by default.
- Encrypted secrets: stored passwords and API keys are AES-256 encrypted, keyed to your site salts.
Deliberately not included: Gmail and Microsoft 365 OAuth. Both need an OAuth consent flow, refresh-token storage, and (for Google) app verification. That is more machinery than the rest of this plugin combined. Use an app password or a provider above.
- Upload the plugin and activate it.
- Go to Lean SMTP → Settings.
- Choose a mailer and fill in the connection details.
- Set your From Email and From Name.
- Save, then use "Send a Test Email" to confirm it works.
For Amazon SES: create an IAM user limited to
ses:SendRawEmail/
ses:SendEmail, verify your From address (or domain) in the SES console, and, if your account is still in the SES sandbox, verify the recipient too.
For Mailgun: use the sending domain exactly as it appears in your Mailgun dashboard, and pick the region matching the account the key was issued in. A US key is not valid against the EU stack.
For Resend: create an API key with send permission and verify your From domain.