MailBridge SMTP releases
General SMTP delivery for WordPress emails with encrypted password storage and built-in diagnostics
by Geovanny Lacayo · github.com/glacayo/mailbridge-smtp · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/glacayo/mailbridge-smtp/releases/download/v1.0.2/mailbridge-smtp-1.0.2.zipMailBridge SMTP routes WordPress email through your SMTP provider. It applies to WordPress core mail, form plugins, ecommerce notifications, and any plugin that sends through wp_mail().
Features
- General WordPress SMTP: Configure SMTP delivery for all WordPress emails.
- Form plugin friendly: Works with form plugins that use
wp_mail(). - Security first: Encrypted password storage, input sanitization, nonce verification, and capability checks.
- Easy setup: Settings live under Tools → MailBridge SMTP.
- Built-in testing: Send SMTP test emails and run mail diagnostics from the admin screen.
- Multiple encryption options: Supports no encryption, SSL, and TLS.
Installation
- Upload the
mailbridge-smtpfolder to/wp-content/plugins/. - Activate MailBridge SMTP from the WordPress Plugins screen.
- Go to Tools → MailBridge SMTP.
- Enter your SMTP provider settings and save.
- Use Send Test Email to verify delivery.
Configuration
| Setting | Description | Example |
|---|---|---|
| Enable SMTP | Turn on SMTP for WordPress emails | ☑️ |
| SMTP Host | Your SMTP server address | smtp.gmail.com |
| SMTP Port | Server port | 587 |
| Encryption | Connection security | TLS |
| Authentication | Enable SMTP login | ☑️ |
| Username | SMTP account username | user@example.com |
| Password | SMTP account password or app password | •••••••• |
| From Email | Sender email address | noreply@example.com |
| From Name | Sender display name | My Website |
| Debug Mode | Log SMTP debug output when WordPress debug logging is enabled | ☐ |
Common SMTP Providers
Gmail
Host: smtp.gmail.com
Port: 587
Encryption: TLS
Authentication: Yes
Gmail accounts with 2FA usually require an App Password.
Outlook / Microsoft 365
Host: smtp.office365.com
Port: 587
Encryption: TLS
Authentication: Yes
SendGrid
Host: smtp.sendgrid.net
Port: 587
Encryption: TLS
Authentication: Yes
Username: apikey
Password: your_sendgrid_api_key
How it works with WordPress email
MailBridge SMTP hooks into WordPress's wp_mail() flow. WordPress core, ecommerce extensions, form plugins, and many other tools use that same mail function, so no plugin-specific configuration is required.
Testing
Admin panel testing
- Go to Tools → MailBridge SMTP.
- Enter an email address in Test Email Address.
- Click Send Test Email.
- Check the recipient inbox.
CLI SMTP connection tests
The tests/ directory contains a standalone CLI test suite that validates SMTP connections without loading WordPress. It is useful for diagnosing provider or network issues before configuring the plugin.
# Copy the local test env template and fill in credentials
cp .env.example .env
# Test all configured servers without sending email
php tests/test-smtp-connection.php
# Show SMTP protocol output
php tests/test-smtp-connection.php --verbose
# Test one configured server
php tests/test-smtp-connection.php --server=1
# Send a test email using TEST_RECIPIENT from .env
php tests/test-smtp-connection.php --send-email
Test results are saved as JSON files in tests/results/.
What Each Test Checks
| Step | Description |
|---|---|
| DNS Resolve | Resolves SMTP hostname to IP |
| TCP Connect | Opens socket to host:port |
| SMTP Banner | Reads server greeting (220) |
| EHLO | Sends EHLO, checks 250 response |
| AUTH Support | Verifies AUTH methods advertised |
| STARTTLS | TLS handshake (if encryption=tls) |
| AUTH LOGIN | Authenticates with credentials |
| Test Email | Sends email via SMTP protocol (optional) |
Test Results
Results are saved as JSON in tests/results/ with timestamps. Minimal example:
{
"timestamp": "2026-04-06 19:30:00",
"servers": {
"1": {
"host": "smtp.gmail.com",
"success": true,
"steps": {
"dns": { "success": true, "detail": "Resolved to 142.250.x.x" },
"connect": { "success": true },
"auth_login": { "success": true }
}
}
}
}
Troubleshooting test email failures
When Send Test Email fails, MailBridge SMTP classifies the failure into a safe, actionable category. The same explanation appears in the AJAX result and in the persistent Last MailBridge SMTP error admin notice (administrators only).
Raw SMTP server responses, passwords, tokens, usernames, recipient addresses, headers, and AUTH material are never shown in the UI.
| Category | Typical cause | What to check |
|---|---|---|
| Authentication | Login rejected (e.g. code 535) |
SMTP username and password (or app password) |
| Recipient | Server rejected the test address (e.g. 550 recipient failures) |
Test recipient email address |
| Sender | Server rejected the From / MAIL FROM address | From Email and provider sender authorization |
| Connection | Timeout, refused connection, or SMTP connect failure | Host, port, firewall, or proxy |
| TLS/SSL | STARTTLS, certificate, or crypto verification failure | Encryption mode and TLS certificate setup |
| Unknown | Unclassified mail-server rejection | Settings plus server / WordPress debug logs (raw response intentionally hidden) |
Tips:
- Confirm Enable SMTP is checked and settings were saved before testing.
- Match port and encryption to your provider (commonly
587+ TLS or465+ SSL). - If authentication fails with providers that require app passwords, generate a fresh app password instead of the account login password.
- Enable Debug Mode only temporarily, and only when WordPress debug logging is enabled; disable it after diagnosis.
Security notes
- SMTP passwords are encrypted using AES-256-GCM with keys derived from WordPress salts.
- Admin actions require the
manage_optionscapability. - AJAX requests use nonce verification.
- Failed test/delivery errors are classified into safe messages; secrets and raw SMTP responses are not exposed in the admin UI.
.envis only for local CLI tests and should never be committed.- Release ZIP packages should exclude local-only files such as
tests/,.env, and.env.*; keep.distignorealigned with release tooling. - Disable debug mode in production unless actively troubleshooting.
Requirements
- WordPress 5.8 or later (tested up to WordPress 7.1)
- PHP 8.2 or later
Frequently Asked Questions
Which WordPress emails does this affect?
MailBridge SMTP is a general WordPress SMTP plugin. It works with any email sent through wp_mail(), including WordPress core emails, ecommerce notifications, and form plugin submissions.
Is my password secure?
Passwords are encrypted before storage and are never intentionally displayed in plain text.
Can I use this on multisite?
MailBridge SMTP is currently designed for single-site installations. Multisite support may be added in a future release.
Support
For issues, feature requests, or contributions, use https://github.com/glacayo/mailbridge-smtp.
License
This plugin is licensed under the GPL-2.0-or-later license.
Security note: Use strong SMTP credentials and enable SSL/TLS encryption whenever possible.
Releases
3 releases. Each count is every asset in that release; expand a row for the breakdown.