Custom SMTP: Email Deliverability – FREE & Easy-to-use
by Nicolas Verlhiac 5 (1 reviews)

Custom SMTP: Email Deliverability – FREE & Easy-to-use

WordPress can't send email reliably on its own. Send through your SMTP provider, log every message, get alerts when sending breaks. Free, no upsell.

Custom SMTP ranks #12,757 among WordPress.org plugins with 200+ active installations, is #555 of 3,634 in the Communication category, a 5/5 rating from 1 reviews, and was last updated Aug 26, 2026. Data from WordPress.org, refreshed twice daily — see methodology.

Tested up to WP 7.0.8 (Current: 7.1.4)
v2.7.5 Current Version v2.7.5
Updated 2 months ago Last Update on 26 Aug, 2026
Refreshed 1 week ago Last Refreshed on
#555 of 3,634 in Communication Top 25% by installs Downloads -22.8% this week
View on WordPress.org
Rank
#12,757
— No change
Active Installs
200+
+7%
KW Avg Position
44.4
0.2 better
Downloads
5.2K
+2 today
Support Resolved
100%
— No change
Rating
100%
Review 5 out of 5
5 (1 reviews)

Next Milestone 300

Total Progress 19%
200+ 300+
1,771
Ranks to Climb
-
Growth Needed
8,000,000
Active Installs
Pro

Unlock Exact Install Count

See the precise estimated active installs for this plugin, calculated from real-time ranking data.

  • Exact install estimates within tiers
  • Track install growth over time
  • Milestone progress predictions
Upgrade to Pro
Need 81 more installs to reach 300+

Rank Changes

12,119 12,438 12,757 13,076 13,395 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
12,719 12,801 12,883 12,965 13,047 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Current #12,757
Change
Best #

Upgrade to Pro

Unlock 30-day and 90-day rank history charts with a Pro subscription.

Upgrade Now

Active Installs Growth

Active Installs 0,000,000+
Growth +0.0%
Peak 0,000,000

Downloads Growth

0 10 20 30 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
0 10 20 30 23-10-2026 24-10-2026 25-10-2026 26-10-2026 27-10-2026 28-10-2026 29-10-2026 30-10-2026 31-10-2026 01-11-2026 02-11-2026 03-11-2026 04-11-2026 05-11-2026 06-11-2026 07-11-2026
Downloads
Growth
Peak

Upgrade to Pro

Unlock 30-day, 90-day, and yearly download history charts with a Pro subscription.

Upgrade Now

Reviews & Ratings

5.0
1 reviews
Overall 100%
5
1 (100%)
4
0 (0%)
3
0 (0%)
2
0 (0%)
1
0 (0%)

Support Threads Overview

Resolved
Unresolved
1
Total Threads
1
Resolved
0
Unresolved
100%
Resolution Rate

Security History

Source: WPVulnerability

No known vulnerabilities on record for Custom SMTP. Checked 3 months ago.

TL;DR

AI summary of the plugin's readme

This plugin is for WordPress site owners and developers, including those running containerized or multisite AWS deployments, who need reliable outgoing email. It solves email deliverability problems by letting them configure a proper SMTP provider or the Amazon SES API, while logging, previewing, and debugging every email sent from the site.

  • SMTP configuration for WordPress
  • Amazon SES API keyless sending via IAM role
  • Built-in email logging
  • Email preview in wp-admin
  • Resend failed emails
  • Export logs to CSV
  • Unusual usage alerts
  • Config-as-code via environment variables

Frequently Asked Questions

Common questions about Custom SMTP: Email Deliverability – FREE & Easy-to-use

On customsmtp.com/docs/, which covers every screen and setting of the plugin. Each provider preset also has its own step-by-step guide, with the exact values the preset fills in. The developer guide goes further: forcing any setting from a PHP constant or an environment variable, running on immutable or containerized WordPress, and sending through the Amazon SES API with an IAM role. For anything not covered there, the support forum on this page is the right place to ask.
Custom SMTP includes presets for popular providers (Gmail, Outlook, AWS SES, SendGrid, etc.). Just select your provider and settings are auto-filled. List of SMTP Servers Here's a reference list of common SMTP servers: Professional Email Services * SendGrid: smtp.sendgrid.net – TLS – Port 587 * Mailgun: smtp.mailgun.org – TLS – Port 587 * Amazon SES: email-smtp.[region].amazonaws.com – TLS – Port 587 * Brevo (Sendinblue): smtp-relay.brevo.com – TLS – Port 587 * Postmark: smtp.postmarkapp.com – TLS – Port 587 * Mailjet: in-v3.mailjet.com – TLS – Port 587 * Scaleway: smtp.tem.scaleway.com - TLS - Port 587 Consumer Email Providers * Gmail: smtp.gmail.com – TLS – Port 587 * Outlook/Office365: smtp.office365.com – TLS – Port 587 * Yahoo Mail: smtp.mail.yahoo.com – TLS – Port 587 * iCloud: smtp.mail.me.com – TLS – Port 587 * Zoho: smtp.zoho.com – TLS – Port 587 * AOL: smtp.aol.com – TLS – Port 587 * GMX: smtp.gmx.com – SSL – Port 465
* Comcast: smtp.comcast.net – Port 587 * Verizon: outgoing.verizon.net – SSL – Port 465 * AT&T: smtp.mail.att.net – SSL – Port 465 * Orange: smtp.orange.net – Port 25 * T-Online: securesmtp.t-online.de – TLS – Port 587 * 1&1 IONOS: smtp.1and1.com – TLS – Port 587 Note: Settings may vary. Contact your provider for exact configuration.
Yes! Custom SMTP logs all emails sent from WordPress, including WooCommerce order confirmations, shipping notifications, and customer emails.
Yes, it works with Contact Form 7, WPForms, Gravity Forms, and any plugin that uses WordPress wp_mail() function.
Yes. Custom SMTP is fully stateless-compatible and works on ephemeral infrastructure (Docker, Kubernetes, AWS ECS/Fargate, Google Cloud Run, etc.) without shared storage like EFS or NFS. The plugin stores all data in the WordPress database: Settings in wp_options Email logs in a custom database table CSV exports streamed directly to the browser (no temp files) Log purge scheduled via WP-Cron (database-backed) It also works with modern WordPress stacks like Bedrock and Trellis, and can run on a read-only filesystem. Notes for stateless deployments: Ensure WordPress salts (LOGGED_IN_KEY, LOGGED_IN_SALT) are consistent across all instances — the SMTP password encryption depends on them. If DISABLE_WP_CRON is set to true, configure an external cron to trigger wp-cron.php so automatic log purge runs properly. On AWS, prefer the Amazon SES (API) mailer with an IAM role (see the SES question below) — it removes the need to store any SMTP credentials at all.
Yes. Custom SMTP includes an Amazon SES (API) mailer that authenticates through your AWS IAM role (the ECS task role or EC2 instance role) using the AWS default credential chain. You never enter or store an access key, secret key, or SMTP credential — ideal for stateless, containerized WordPress on AWS ECS/Fargate. In Settings > Custom SMTP, choose "Amazon SES (API · IAM role)" as the mailer, set the region and a verified sender address (or inject them as environment variables), and you're done. You can also provide a SES Configuration Set for bounce/complaint tracking, and "Send Test Email" returns the SES MessageId so you can confirm the send on the AWS side. The following environment variables / PHP constants take priority over the saved settings, so the same container image works across environments: SES_REGION (falls back to AWS_REGION) — e.g. eu-west-3 SES_FROM_EMAIL — the verified sender address SES_CONFIG_SET — optional SES configuration set The message is sent as raw MIME, so HTML, attachments, CC/BCC, Reply-To and custom headers are all preserved. The mailer works whether or not the AWS SDK for PHP is installed (it falls back to a built-in signed API client), and SES sends are logged in the Email Logs like any other email. This is different from the existing Amazon SES SMTP preset, which uses SMTP credentials — the new mailer uses the SES API and your IAM role instead.
Yes. Every setting can be forced from a PHP constant or environment variable, which takes priority over the value saved in the database — ideal for immutable Docker images and DISALLOW_FILE_MODS deployments. Use CUSTOM_SMTP_<SETTING> in uppercase, for example: CUSTOM_SMTP_MAILER_TYPE — smtp or ses_api CUSTOM_SMTP_HOST, CUSTOM_SMTP_PORT, CUSTOM_SMTP_SECURE, CUSTOM_SMTP_USERNAME, CUSTOM_SMTP_PASSWORD CUSTOM_SMTP_MAILFROM, CUSTOM_SMTP_FROMNAME, CUSTOM_SMTP_LOG_RETENTION CUSTOM_SMTP_ALERTS_ENABLED, CUSTOM_SMTP_ALERT_EMAIL, CUSTOM_SMTP_ALERT_WEBHOOK, CUSTOM_SMTP_ALERT_MAX_PER_HOUR, CUSTOM_SMTP_ALERT_MAX_PER_DAY, CUSTOM_SMTP_ALERT_COOLDOWN The Amazon SES shortcuts also apply: SES_REGION (or AWS_REGION), SES_FROM_EMAIL, SES_CONFIG_SET. An empty value counts as "not set", so it never overrides anything. To force a boolean setting off, give it an explicit value: CUSTOM_SMTP_ALERTS_ENABLED=false (or 0), not an empty string. To switch an entire Multisite network to Amazon SES with no database changes, set in your container: CUSTOM_SMTP_MAILER_TYPE=ses_api, SES_REGION=eu-west-3, SES_FROM_EMAIL=no-reply@example.com. Values are resolved from PHP constants, then getenv(), $_ENV, and $_SERVER. The $_SERVER source means FrankenPHP (including worker mode) and Bedrock-style stacks work with plain environment variables — no constants required. On Multisite, the plugin also reads a network-wide option (via get_site_option) beneath any per-site option, so a single configuration can apply to all sites. Fields supplied by the environment are shown read-only in the settings page with a badge naming the source variable. (A password supplied via CUSTOM_SMTP_PASSWORD is used as-is; only stored passwords are encrypted at rest.)
Yes, on WordPress 6.9+. Custom SMTP registers two abilities with the WordPress Abilities API: custom-smtp/connection-health returns the current SMTP state (configured, host, port, encryption, auth, logging retention) — useful for diagnostics and monitoring. custom-smtp/send-test-email triggers a test email through the configured SMTP server. Both abilities are accessible to MCP-compatible AI clients, automation workflows (n8n, Make), and other plugins. They enforce the same capability check as the wp-admin interface (manage_options), so unprivileged users or scripts cannot invoke them.

Sign In / Register

You need to sign in or register to use this feature.