Does this work with WooCommerce, Contact Form 7, WPForms, etc.?
Yes. Anything that uses wp_mail() — which is virtually every WordPress plugin that sends email — works without modification.
Do I need a Google Cloud or Microsoft Azure account?
No. Authorization is handled by the Emerge OAuth service. You sign in with your normal Google or Microsoft account; no developer setup is required.
How are my credentials stored?
All credentials — OAuth tokens for Gmail and Microsoft, plus API keys and SMTP passwords for SendGrid, Mailgun, Amazon SES, Brevo, and Generic SMTP — are encrypted with a key generated locally on your site on first activation and stored as a WordPress option. They never leave your install. For OAuth, the proxy used during sign-in does not persist tokens.
What happens when an OAuth access token expires?
Access tokens expire roughly hourly. The plugin refreshes them automatically — both on a schedule and inline if a send happens to coincide with an expiry. You don’t need to do anything. API-key connections (SendGrid, Mailgun, SES, Brevo, SMTP) don’t expire — the credentials you paste are used as-is until you rotate them yourself.
What happens if a provider is unreachable?
The plugin returns an error from its pre_wp_mail hook, which causes WordPress to fall back to its default mail delivery (or to the next available connection if you have failover set up). The failure is recorded in the Last error column of the settings page and surfaced as an admin notice for 24 hours.
Can I send from multiple accounts?
Yes. Connect as many as you like, mixing providers freely — e.g. a SendGrid account, a Gmail mailbox, and an SMTP server as a last-resort fallback. Enabled connections are tried in failover order; if a send fails (or a connection is in cooldown after a recent error), the plugin automatically falls through to the next enabled connection. Untick a connection’s Enabled checkbox in the Senders table to take it out of rotation without disconnecting it.
For high-volume sites, turn on Throttle in Sender settings to spread sends across all enabled connections instead of always using the first. Choose Always to rotate on every email, or Only when bulk sending to rotate only when emails go out less than 10 seconds apart — occasional emails then keep using your first connection. Developers can change the 10-second window with the emerge_mail_bulk_interval filter.
Can I override the From email?
Yes. Enter a different address in the From email column on the Senders table. It must be a sender that the provider has authorized for this account — a verified send-as alias for Gmail/Microsoft, a verified sender or domain for SendGrid / Mailgun / Amazon SES / Brevo, or whatever the SMTP server allows. Sends from an unauthorized address will be rejected by the provider.
Can I customize the From display name?
Yes. Set it in Sender settings → From name on the main settings page. Leave it blank to use your site title as the default.
Does Emerge Mail track bounces and spam complaints?
Yes. Open Emerge Mail → Email Settings → Bounce handling . For SendGrid, Mailgun, Brevo, and Amazon SES, copy the single webhook URL into your provider’s event/webhook settings (SES routes through an SNS topic subscription, which confirms itself automatically). One endpoint serves every provider — Emerge Mail detects which one sent each event from the payload. For Gmail, copy the included Google Apps Script into a new project at script.google.com and run its setup function once; it reads delivery-failure messages from the mailbox and forwards them to the same endpoint on a 15-minute schedule. Every bounce or complaint is classified (hard / soft / complaint) and recorded in the Activity Log, correlated back to the original message.
Can Emerge Mail stop sending to addresses that keep bouncing?
Yes — it’s opt-in. Tick Stop sending to addresses that have hard-bounced or filed a spam complaint under Email Settings → Bounce handling . With it on, any wp_mail() to a recipient that has a recorded hard bounce or complaint is blocked before it’s attempted: wp_mail() returns false, and a WP_Error with the code emerge_mail_recipient_suppressed is passed to WordPress’s standard wp_mail_failed action so the calling code can read the reason and show it to the user. (See “How do I act on a bounce…” below for the recommended wp_mail() pattern.) Soft (temporary) bounces are deliberately not suppressed, so a one-off full mailbox or greylist won’t lock anyone out; developers can change the suppressing set with the emerge_mail_suppression_bounce_types filter, and the message with emerge_mail_suppressed_recipient_message . The list is read live from the Activity Log, where hard bounces and complaints are retained for a year by default ( emerge_mail_bounce_retention_days ) — long after routine log rows are pruned — so suppression persists that long before an address is retried.
How do I act on a bounce from my own plugin or code?
Hook the emerge_mail_bounce_received action. It fires once per bounce or complaint — whether detected synchronously when the provider rejects a recipient at send time, or later via webhook — with a single, uniform payload: email , disposition ( hard / soft / complaint ), type , subject , mailbox , from , provider , reason , message_id , client_ref , and source . To tie a bounce back to your own records, set an X-Emerge-Mail-Ref header on the original wp_mail() call — its value is echoed back to you as client_ref , on every provider.
Can I suppress noisy WordPress notifications I don’t care about?
Yes. Open Emerge Mail → Email Controls and tick the notifications you want stopped. Eight WordPress core admin/editor notifications are listed (comment moderation, new comments, password reset notices, new user registrations, and automatic-update results). Suppressed notifications are recorded in Emerge Mail → Activity Log so you still have an audit trail. End-user notifications (password resets, account changes, new-user welcome) are intentionally not listed — users need those.
Does the plugin read my mailbox?
No. For Gmail and Microsoft, the OAuth scope requested is sufficient only to send mail. The plugin does not call any read endpoints and cannot access existing messages. For SendGrid, Mailgun, SES, Brevo, and SMTP, the plugin only ever posts outbound messages — it does not request inbox reads, contact-list reads, or any other data from the provider.
Is `wp_mail` still available to other plugins after activation?
Yes. wp_mail continues to function normally. The plugin only changes how the underlying send is performed; it doesn’t change any of wp_mail ‘s public behavior.
Will the plugin work without an active mailbox connection?
Yes. wp_mail falls through to WordPress’s default delivery when no connection is available. The plugin never blocks email.
How do I remove all stored data on uninstall?
Deleting the plugin from the Plugins screen runs uninstall.php , which removes every stored connection, all encrypted tokens, the per-site encryption key, sender/control settings, the bounce-webhook secret, the Activity Log table, and all scheduled jobs.