WP Mail Manager
WordPress plugin for managing email campaigns and mailing lists. Queue-based sending with rate limiting, built-in templating with variables, delivery logs, and test message support — built for upsells, promos, and user base engagement.
The problem
A growing WordPress store had thousands of registered users but no way to reach them outside of WooCommerce order emails. Every promo campaign required a developer, a third-party SaaS account, and a manual export of the user list. Campaign setup took 2–3 days and the team had zero visibility into what was delivered or failed.
On top of that, blasting emails in one go overwhelmed the shared hosting SMTP server — messages bounced, the server got flagged, and the store's domain ended up on spam lists.
Before → After
| Before | After |
|---|---|
| Manual CSV export + third-party tool for every campaign | Campaign created and sent straight from the WordPress admin |
| All emails sent in a single burst — SMTP overload, bounces, spam flags | Queue-based dispatch with configurable send rate (e.g. 50 emails/minute) |
| Generic messages, no personalisation | Templates with {{first_name}}, {{site_name}}, and any WP user meta variable |
| No delivery feedback — couldn't tell if emails arrived | Per-message delivery log with status, timestamp, and error detail |
| No way to test a template before sending to thousands of users | One-click test send to any email address before launching a campaign |
| 2–3 days to prepare and launch a campaign | Under 30 minutes from idea to live campaign |
User journey
- Create a mailing list. The admin opens Mail Manager → Lists and creates a group — e.g. "Active buyers 2024". Users can be added manually, filtered by role, or pulled automatically by WooCommerce order history.
- Write the message template. The built-in editor supports HTML and plain text. Variables like
{{first_name}},{{order_count}}, or any custom user meta field are dropped in with double-curly syntax. The templating engine resolves them per recipient at send time. - Send a test. Before going live, the admin clicks "Send test" and enters their own email. The message is rendered with real variable substitution so they see exactly what recipients will receive.
- Configure the campaign. Choose the mailing list, set the send rate limit (messages per minute or per hour), and optionally schedule a start time. The rate limit prevents hitting SMTP quotas and keeps the domain reputation clean.
- Launch and monitor. The campaign enters the queue. WordPress cron picks up batches on each tick and dispatches them within the configured rate. The log screen shows each message's status — queued, sent, or failed — with a timestamp and any SMTP error returned.
- Review results. After the campaign completes, the admin sees total sent, failed count, and failure reasons. Failed messages can be retried in bulk.
Key metrics
- Campaign setup time reduced from 2–3 days to under 30 minutes
- Zero SMTP overload incidents after switching to queue-based dispatch
- Full delivery visibility — every message logged with status and error detail
- Template personalisation applied to 100% of outgoing messages
- No third-party SaaS dependency — data stays on the client's own server
Key features
- Mailing lists and groups with manual or role-based membership
- Queue-based sending with configurable rate limit per minute / per hour
- HTML + plain-text templates with
{{variable}}substitution - Test message send before launching a campaign
- Per-message delivery log — status, timestamp, SMTP error
- Bulk retry for failed messages
- Campaign scheduling via WordPress cron
Installation
- Upload the plugin folder to
/wp-content/plugins/ - Activate the plugin from the WordPress Plugins menu
- Go to Mail Manager in the admin sidebar to create your first list
- Configure the SMTP send rate under Mail Manager → Settings
Open for contract collaboration
I am available for contract-based collaboration. If you have an interesting project idea, schedule a call via Calendly.
Schedule a 30-min call