What it does
Volanea SMTP is a WordPress plugin that hands every wp_mail() call to the Volanea HTTP API instead of your server's local mail() binary. Password resets, order receipts, form notifications, and everything else your site sends goes out over an authenticated API connection.
Despite the name, the plugin does not speak SMTP — there is no port to unblock and no SMTP password stored on the site. It uses the same POST /v1/send endpoint documented in the API reference.
Nothing is ever silently dropped. The plugin only takes over a message it can send faithfully. If the API rejects the message, the key is wrong, the network fails, or the message uses something the API can't express, the plugin steps aside and WordPress delivers it the way it always did.
Install the plugin
- Download the plugin: volanea-smtp.zip
- In your WordPress admin, go to Plugins → Add New → Upload Plugin and select the zip. (Or unzip it into
/wp-content/plugins/over SFTP.) - Click Activate.
Configure
- Go to Settings → Volanea SMTP.
- Paste your Volanea secret key.
- Set the From email to an address on a domain you've already verified in Volanea — the API refuses messages from an unverified domain.
- Click Save Changes, then Send test email to confirm the connection.
To keep the key out of the database entirely, define it in wp-config.php instead of the settings screen:
define( 'VOLANEA_SMTP_API_KEY', 'your-secret-key' );
The constant wins over anything saved in the admin, and the settings page then shows the key as read-only and masked.
What it handles
- To, Cc, Bcc, and Reply-To
- HTML and plain-text bodies, including the
wp_mail_content_typefilter - Attachments (up to 10 per message)
- Custom headers, including
X-headers - Headers passed as either a string or an array
- Recipient lists longer than the API's 50-address limit, split into multiple requests automatically
Known differences from a normal SMTP plugin
Worth reading before you switch a busy site over:
| Behavior | What happens |
|---|---|
| Cc / Bcc | The API has no Cc/Bcc field, so each copied address gets its own message. Bcc behaves exactly as expected. A Cc recipient still receives the message, but no visible Cc: header is present. |
| Multiple recipients | A message addressed to several people is sent as a separate message to each — recipients never see one another. |
| Multiple Reply-To addresses | The API accepts one; the first is used. |
| Plain-text messages | Rendered inside a <pre> block, so plain text looks a little different from raw mail() output. |
| Hand-built MIME messages | A message that supplies its own multipart boundary is passed to the default WordPress mailer untouched. |
| A 200 response | Means accepted, not delivered. The recipient can still be skipped for being suppressed, unsubscribed, or over quota — check GET /v1/emails/{id} or the email.* webhooks for final status. |
If you'd rather keep real Cc headers, turn off Deliver Cc and Bcc recipients as individual copies in the settings screen — messages with Cc or Bcc will then go through the default WordPress mailer instead.
Troubleshooting
What happens if Volanea is unreachable? The message goes out through the default WordPress mailer instead, exactly as it would if the plugin weren't installed. Turn on the email log (Settings → Volanea SMTP) to see which messages took that path and why.
My test email says "test mode: nothing was delivered." You're using a test key. Test keys exercise the whole pipeline but never reach a real inbox — swap in a live key to send real email.
The API says my From domain isn't verified. Verify the domain in your Volanea dashboard, then set the From address to something on it.
Does the log store my email content? No. It stores the recipient, subject, status, and any error for the last 50 sends — message bodies and attachments are never logged, and logging is off by default.
Can I use this alongside another SMTP plugin? Not recommended, but it won't fight for the message — if another plugin already claimed a send, Volanea SMTP leaves it alone.
For developers
Three filters are available for anything the settings screen doesn't cover:
volanea_smtp_api_base— point at a staging environmentvolanea_smtp_request_args— adjust the underlyingwp_remote_post()callvolanea_smtp_payload— modify the request body before it's sent to/v1/send