| 开发者 | duvamail |
|---|---|
| 更新时间 | 2026年10月2日 16:55 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp_mail() (WooCommerce orders, contact forms, password resets, comment notifications, any plugin) is submitted to your Duva account over HTTPS.
wp_mail(): the plugin hooks the core pre_wp_mail filter, so WordPress keeps its usual contract (true on success, false and the wp_mail_failed action on failure).wp_mail_from, wp_mail_from_name and wp_mail_content_type filters, and reads From, Reply-To, Cc, Bcc and Content-Type headers (strings or arrays, Name <address> recipients).wp_mail() returns false, wp_mail_failed fires, 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.wp-config.php instead (DUVA_MAIL_API_KEY).Reply-To, so contact-form replies still reach the visitor.text/plain and text/html emails are supported. If an email has only an HTML body, Duva adds a plain-text version generated from it. Raw multipart/* bodies are refused with an explicit error.phpmailer_init action) or that add their own SMTP settings have no effect on emails sent through Duva.Return-Path, Message-ID); the email then fails with a message that names the header. See the FAQ.duva-mail folder to /wp-content/plugins/, or install the zip from Plugins > Add New > Upload Plugin.wp-config.php (it then takes precedence, and the settings field is hidden):
define( 'DUVA_MAIL_API_KEY', 'dv_...' );Open Settings > Duva Mail: the status shows whether the plugin is configured, and the failure log shows the latest errors (HTTP status, error code and message). A 404 means the API key is unknown, revoked, expired, or belongs to another domain; a 403 that the domain is not verified yet or the account is not allowed to send; a 429 that a rate limit or your sending quota was reached.
No, on purpose. A silent fallback would send transactional emails from an unverified server and hide the problem. The failure is returned to the caller (wp_mail() returns false), logged, and displayed to administrators.
Yes, as long as they send through wp_mail(). Check that the sender address they use is on your sending domain; otherwise Duva Mail replaces it by the default sender address of the settings and keeps the original in Reply-To.
The Duva API has no Cc or Bcc fields: it sends one copy per recipient. Duva Mail adds your Cc and Bcc addresses as recipients, so each of them receives the email, but nobody sees the others.
The Duva API only accepts X-* headers (except the ones reserved by the platform) and a short list of standard ones: List-Unsubscribe, List-Unsubscribe-Post, List-Id, In-Reply-To, References, Auto-Submitted, Precedence, Importance, Feedback-ID. Headers such as Return-Path, Message-ID or DKIM-Signature are refused. Remove them from the code that sends the email.
Local files are read and sent with the email, up to 10 files and 5 MB in total. Executable and script extensions (.exe, .js...) are refused. Accounts that are still in the Duva sandbox cannot send attachments. Beyond a limit, the email fails with an explicit error and is not sent.
Yes, with the duva_mail_payload filter, which receives the request body and the wp_mail() arguments just before the request is sent, and returns the body to send: add_filter( 'duva_mail_payload', function ( $payload ) { $payload['tags'] = array( 'wordpress' ); return $payload; } );
In the duva_mail_settings option, or nowhere in the database if you define DUVA_MAIL_API_KEY in wp-config.php (recommended). The key is never sent to the browser, shown in a page, written to the failure log or included in an error message.
Error messages only: no API key, no email content, no full email addresses (they are masked). It keeps the 20 latest failures and can be cleared.
Deleting the plugin removes its options (settings, failure log, status). Emails already submitted to Duva stay in your Duva account.
Settings are per site. Network activation is not specifically supported yet.
pre_wp_mail interception, settings screen, connection check, test email, failure log.