Duva Mail Wordpress Plugin - Rating, Reviews, Demo & Download
Plugin Description
WordPress sends its emails with the web server’s mail function, which is often unreliable and ends up in spam. Duva Mail replaces that transport: every email sent with wp_mail() (WooCommerce orders, contact forms, password resets, comment notifications, any plugin) is submitted to your Duva account over HTTPS.
- Works with anything that calls
wp_mail(): the plugin hooks the corepre_wp_mailfilter, so WordPress keeps its usual contract (trueon success,falseand thewp_mail_failedaction on failure). - Respects the
wp_mail_from,wp_mail_from_nameandwp_mail_content_typefilters, and readsFrom,Reply-To,Cc,BccandContent-Typeheaders (strings or arrays,Name <address>recipients). - Attachments from local files (10 files and 5 MB in total, as accepted by the Duva API).
- No silent fallback: if Duva cannot take the email,
wp_mail()returnsfalse,wp_mail_failedfires, and the failure is shown in Settings > Duva Mail and as an admin notice. The email is never sent by another transport behind your back. - Safe retries: each email carries an idempotency key, so a network timeout is retried without ever creating a duplicate. Quota and client errors are never retried.
- API key kept out of the browser: the settings field never displays it, and you can define it in
wp-config.phpinstead (DUVA_MAIL_API_KEY). - No telemetry, no tracking, no calls to any server other than the API address you configure.
What you need
A Duva account with a verified sending domain, and an API key created for that domain in the Duva dashboard.
Things to know before you install
- Emails are sent from your Duva domain only. If WordPress (or a plugin) sets a sender on another domain, Duva Mail sends from your default sender address and puts the original sender in
Reply-To, so contact-form replies still reach the visitor. - Cc and Bcc: the Duva API sends one copy per recipient, each addressed only to its own recipient. Cc and Bcc addresses therefore receive their own copy; the other recipients are not shown on it.
- Only
text/plainandtext/htmlemails are supported. An HTML email is sent as HTML only (no automatic text version). Rawmultipart/*bodies are refused with an explicit error. - PHPMailer is bypassed. Plugins that customize PHPMailer (the
phpmailer_initaction) or that add their own SMTP settings have no effect on emails sent through Duva. - The API refuses some custom headers (for example
Return-Path,Message-ID); the email then fails with a message that names the header. See the FAQ.
External services
This plugin sends your site’s emails to the Duva API, a third-party service, at the API address set in the settings (default https://api.duva.ca). It is the plugin’s only purpose and the only external connection it makes.
- What is sent, and when: for each email WordPress sends, the sender, the recipients, the subject, the body, any attachments and custom headers are sent to Duva so that it can deliver the email. The “Check the connection” and “Send a test email” buttons also contact the API. Each request carries your API key, the language of the site (to localize error messages) and a user agent with the plugin, WordPress and PHP versions.
- What is not sent: nothing else about your site, your users or your visitors, and nothing is sent when no email is sent.
- Duva terms of use: https://duva.ca/en/terms
- Duva privacy policy: https://duva.ca/en/privacy
Screenshots
The settings screen: connection status, API address, sending domain, API key (never displayed), default sender, and the buttons to check the connection and send a test email.
The “Latest failures” table with the HTTP status, the Duva error code and a message, shown after a failed test email.
The admin notice shown when the plugin is active but not configured.

