Email marketing, self-hosted in WordPress.
Build contact lists from your existing WordPress audience, group them into static or dynamic segments, author HTML emails in the block editor, and send one-time broadcasts or recurring newsletters — with opens, clicks, and unsubscribes tracked in your own database. No SaaS, no monthly per-contact fee.
Your data, your server, your wp_mail()
Emerge Campaigns turns WordPress into an email-marketing tool without sending
a single contact off-site. Every list, segment, send record, and tracking
event lives in your own database. Sends dispatch through WordPress's standard
wp_mail(), so they ride whatever delivery you already have —
host SMTP, a transactional-service plugin, or a mailbox connected via
Emerge Mail.
How it works
- Install the plugin from the WordPress.org repository. Action Scheduler is bundled — nothing else to set up for reliable background sending.
- Sync your contacts. Pick which sources to pull from in Settings — WordPress users, comment authors, WooCommerce and EDD customers, Jetpack, MailPoet, Newsletter, Contact Form 7, Gravity Forms — or add contacts by hand.
- Author a template in the block editor, using merge tags and even Query Loop blocks to pull in recent posts.
- Send a broadcast or start a newsletter. Pick a template and a segment, then send now, schedule it, or set a daily / weekly / monthly cadence. A background worker sends in throttled batches.
Broadcasts and Newsletters
Two focused workflows over the same engine, so one-off sends and ongoing series never clutter each other.
-
Broadcasts — one-time sends
The full draft → scheduled → sending → sent lifecycle. Schedule for later, pause and resume in-flight, and duplicate a finished send as a fresh draft.
-
Newsletters — recurring series
Choose a daily, weekly, or monthly cadence and a send time; each issue is spawned automatically. Edit the parent and changes flow to the next issue.
-
Issue log & smart resend
Every newsletter keeps a read-only log of the issues it has sent, with pause/stop for an in-flight one. An opt-in "send only if content changed" gate skips an issue when nothing meaningful changed.
Built for a real WordPress audience
-
Contacts from where you already have them
A daily background sync pulls from WordPress users, commenters, WooCommerce & EDD customers, Jetpack, MailPoet, Newsletter, Contact Form 7 (Flamingo), and Gravity Forms. Each source is opt-in.
-
Static & dynamic segments
Curate a list by hand, or write a rule (status, source, subscribed-at) that's re-evaluated at send time so membership stays current as new contacts arrive.
-
Block-editor templates
Author emails in Gutenberg with mustache-style merge tags and starter block patterns. Query Loop blocks pull recent posts straight into a newsletter.
-
Background, throttled sending
Action Scheduler chains batches with a configurable per-minute cap (default ≈120/hour) to respect provider limits. Invalid addresses are skipped per-recipient, not fatal to the batch.
-
Analytics in your database
Open pixel, click redirect, and unsubscribe events recorded locally. Per-campaign stats and per-contact send history, right inside wp-admin. IPs stored only as salted hashes.
-
Bounce & complaint handling
With Emerge Mail active, hard bounces and complaints suppress a contact automatically while soft bounces are kept mailable — with optional, guarded cleanup of linked users and comments.
-
Subscribe form & webhook
Accept public signups via a shortcode, block, or widget (AJAX with a no-JS fallback, honeypot + rate limit). An API-key-protected webhook lets external systems add contacts too.
-
One-click, standards-based unsubscribe
Per-recipient tokens power unsubscribe, view-in-browser, and tracking URLs. RFC 8058 headers give Gmail and Apple Mail a native one-click unsubscribe button.
What this is not
- Not a SaaS — nothing is hosted off your site. All data, including tracking events, lives in your database.
- Not an SMTP plugin — Emerge Campaigns hands sends to WordPress's
wp_mail()and lets your existing mail setup take it from there. - Not a transactional interceptor —
wp_mail()calls from other plugins (password resets, receipts) pass through untouched. This is for campaigns you compose and send yourself.