Emerge Mail

Changelog

1.5.1

  • New: opt-in delivery suppression — block wp_mail() to addresses that have hard-bounced or complained. Returns false with a WP_Error on the standard wp_mail_failed action. Off by default; emerge_mail_suppression_bounce_types / emerge_mail_suppressed_recipient_message filters to tune it.
  • Changed: Connections “Active” radio is now a per-connection Enabled checkbox — pull a mailbox out of failover/throttle rotation without disconnecting it.
  • Changed: two-tier log retention — general rows 30 days, hard bounces and complaints 365 days (emerge_mail_log_retention_days / emerge_mail_bounce_retention_days).
  • Changed: inbound bounces are recorded only when they correlate to a logged send, so the Gmail bridge no longer logs DSNs for mail not sent through Emerge Mail (emerge_mail_record_uncorrelated_bounces filter to override).
  • Fix: Throttle toggle is hidden when fewer than two connections are enabled; OAuth popup now closes itself and refreshes the settings page reliably.
  • Misc: to_email index added to the event-log table on upgrade.

1.5.0

  • New: bounce & complaint tracking for SendGrid, Mailgun, Brevo, Amazon SES, and Gmail. One REST endpoint classifies each event, records it in the Activity Log (correlated to the send), and fires the emerge_mail_bounce_received action. Paste the URL from Email Settings → Bounce handling into your provider (SES via an SNS subscription; Gmail via a provided Apps Script).
  • New: emerge_mail_bounce_received fires for both send-time and webhook bounces with one payload — recipient, disposition, type, subject, mailbox, From, provider, reason, and client_ref. Set an X-Emerge-Mail-Ref (or Message-ID) header on wp_mail() to map a bounce back to your own record on any provider.
  • Changed: sends now store the provider message id on the log row for webhook correlation (4th arg to emerge_mail_after_send_attempt).
  • Changed: “Email Controls” renamed to “Email Settings”.
  • Changed: stored options and cron jobs renamed from the bare emerge_ prefix to emerge_mail_ to avoid namespace clashes — migrated in place on upgrade, nothing lost. The daily usage report now derives counts from the Activity Log (emerge_usage_counters removed).

1.4.0

  • New: Activity Log unifies all mail activity — successful sends logged alongside suppressions, send errors, and bounces, with Provider/Mailbox/From columns and a provider filter.
  • New: emerge_mail_log_sends filter to disable logging of successful sends.
  • New: Reconnect on an Expired API-key connection re-validates the saved key in place and reactivates it if valid.
  • Changed: “Bulk sending” renamed to “Throttle connections” — rotates across all mailboxes when on; burst detection removed.
  • Changed: post-error connection cooldown raised from 10 minutes to 1 hour.
  • Changed: default log retention lowered from 30 days to 10 days (emerge_mail_log_retention_days).
  • Changed: send-error/bounce logging and the bounce classifier are now standard; the EMERGE_MAIL_PRO gate is removed.
  • Fix: a successful send (including Send test) clears a stuck “Expired” status back to “Active”.
  • Fix: the dashboard failure notice names the provider and auth type, so failures are unambiguous when connections share an email.
  • Removed: the unsafe “Other admin notices” catch-all in Email Controls (it could suppress admin password resets).

1.3.0

  • New: SendGrid, Mailgun, Amazon SES (Sigv4, no AWS SDK), Brevo, and Generic SMTP (PHPMailer) providers.
  • New: per-provider connect forms — credentials are validated against the provider before being persisted.
  • Changed: failover and throttle mix-and-match freely across OAuth and API-key providers.
  • Changed: bounce classifier extended with provider-specific patterns for all five new providers.
  • Changed: token-refresh scheduler skips API-key connections; they’re marked expired on 401/403.

1.2.0

  • New: Status column on the connections list (Active / Cooldown / Expired).
  • New: Reconnect action on expired connections — re-runs OAuth and upserts tokens in place.
  • Fix: settings form “link expired” error on sites also running Emerge Campaigns; admin handlers are now page-scoped.
  • Changed: form-submit triggers and nonce actions renamed from emerge_* to emerge_mail_* to avoid collisions.

1.1.0

  • New: “Other admin notices” catch-all suppression in Email Controls (emerge_mail_suppress_other_admin filter).
  • New: unified Activity Log replaces the Suppression Log (suppressions, send errors, bounces in one table).
  • New (pro): synchronous bounce detection and provider send-error logging (send.bounce.* / send.error.*).
  • New: emerge_mail_event_logged and emerge_mail_after_send_attempt actions; pro gate via EMERGE_MAIL_PRO.
  • Changed: wp_mail() return reflects failure type — transport errors fall back to default mail, recipient bounces return false (emerge_mail_fallback_on_failure filter).
  • Changed: connection-failure admin notice scoped to Dashboard and Plugins screens.
  • Schema: emerge_suppression_log renamed to emerge_mail_event_log with new columns; migrated in place.

1.0.0

  • Initial release.
  • OAuth connections to Gmail and all Microsoft account types.
  • Multiple mailboxes with active-first routing, automatic failover, and per-connection cooldown.
  • Optional throttle that rotates connections, per-connection From override, configurable Sender settings.
  • Full wp_mail mapping (attachments, Cc/Bcc, multipart, address lists, non-UTF-8, RFC 2047).
  • Send-test per connection; Email Controls page; Suppression Log with 30-day pruning.
  • Hourly token maintenance (Action Scheduler / WP-Cron); safe fallback to default mail.
  • Filter hooks for cooldown, HTTP timeouts, token refresh, MIME output, suppression catalog, and log retention.

Plugin Website
Visit website

Author
Redigit
Version:
1.5.1
Last Updated
June 25, 2026
Requires
WordPress 6.0
Tested Up To
WordPress 7.0
Requires PHP
8.1

Share Post

Join our newsletter.

Get insights into what’s happening at ChangelogWP right in your inbox. We don’t believe in spam.