Title: Solviroa – Email Setup &amp; Deliverability
Author: Maira Foresto
Published: <strong>September 26, 2026</strong>
Last modified: September 27, 2026

---

Search plugins

![](https://ps.w.org/solviroa/assets/banner-772X250.png?rev=3714547)

![](https://ps.w.org/solviroa/assets/icon-256x256.png?rev=3714547)

# Solviroa – Email Setup & Deliverability

 By [Maira Foresto](https://profiles.wordpress.org/mairaforesto/)

[Download](https://downloads.wordpress.org/plugin/solviroa.0.2.4.zip)

 * [Details](https://wordpress.org/plugins/solviroa/#description)
 * [Reviews](https://wordpress.org/plugins/solviroa/#reviews)
 *  [Installation](https://wordpress.org/plugins/solviroa/#installation)
 * [Development](https://wordpress.org/plugins/solviroa/#developers)

 [Support](https://wordpress.org/support/plugin/solviroa/)

## Description

Solviroa is a guided email setup, migration and diagnostic tool for WordPress. It
is designed to help administrators understand and repair the complete sending path
instead of only storing SMTP credentials.

Free includes:

 * A step-by-step setup wizard for the site’s sender identity and connection.
 * Detection of existing mail plugins and compatible import of existing SMTP configuration
   where supported.
 * Provider-neutral SMTP, OAuth and transactional API connection methods.
 * Non-sending preflight checks before a real test message is attempted.
 * Human-readable diagnostics for connection, environment and mail-routing problems.
 * Read-only MX, SPF, DKIM, DMARC and nameserver checks without writing DNS records.
 * A local assistant that explains the current connection, health state and relevant
   next steps using data already stored on the site.
 * Email history with delivery-attempt status and non-secret technical details.
 * An optional Simulation Mode that lets WordPress exercise `wp_mail()` flows without
   contacting the provider or delivering a real message.

### What makes Solviroa different?

Solviroa uses a migration-first and diagnostic-first workflow rather than treating
email setup as only a credentials form. Its Free workflow combines these steps in
one place:

 * **Recover before re-entering:** it detects compatible settings from several existing
   WordPress mail plugins and can import supported SMTP/OAuth configuration as an
   unverified candidate instead of immediately replacing the current mail route.
 * **Verify before activation:** imported or newly entered connections remain pending
   until Solviroa runs provider/environment checks; the normal setup flow does not
   activate a connection merely because credentials were saved.
 * **Diagnose the complete path:** connection checks, WordPress routing state, mail
   history and read-only MX/SPF/DKIM/DMARC/nameserver checks are presented together
   with human-readable explanations.
 * **Test without delivery:** Simulation Mode can exercise WordPress `wp_mail()`
   behavior without contacting the selected provider or delivering a real message.
 * **Explain local state:** the built-in assistant is deterministic and uses the
   state already stored on the WordPress site; it is not a remote AI/chat service
   and does not send the administrator’s questions to the developer.

These capabilities are intended to make migration, diagnosis and verification the
primary workflow, with SMTP/API/OAuth transport configuration as one part of that
workflow.

Solviroa does not claim that an accepted message reached the recipient’s inbox. 
Provider acceptance and confirmed delivery are different states.

Solviroa Free works independently. Solviroa Pro is a separate optional add-on for
continuity features such as multiple connections, fallback, retry, Smart Routing,
alerts, compatible delivery confirmation and reports. Free functionality does not
require Pro.

### External services

Solviroa has no telemetry or analytics service and does not send plugin-usage data
to the developer. External connections occur only when an administrator configures
or checks a selected mail connection, completes OAuth, explicitly sends mail, or
when WordPress itself sends mail through an activated connection.

For provider-based sending, the selected provider can receive credentials or OAuth
tokens required for authentication and, when a message is sent, the message data
required for delivery. Depending on the provider this can include sender, To/CC/
BCC, Reply-To, subject, headers, body and attachments. Credentials and OAuth tokens
are stored locally in the WordPress site in encrypted form when the server supports
the required cryptography.

### Google OAuth

Used when an administrator chooses the Google OAuth connection. Solviroa sends the
OAuth client identifier, redirect URI, requested scopes and OAuth protocol values
to Google when the administrator starts or completes authorization. After authorization,
the access token is sent to Google’s user-information endpoint to identify the authorized
account. If the administrator disconnects Google, the stored access or refresh token
may be sent to Google’s token-revocation endpoint. Google returns authorization/
token data; Solviroa does not receive the user’s normal Google password.

 * API/authorization endpoints used: `accounts.google.com`, `oauth2.googleapis.com`,`
   openidconnect.googleapis.com`
 * Service: [Google OAuth](https://accounts.google.com/)
 * Terms: [Google Terms](https://policies.google.com/terms)
 * Privacy: [Google Privacy Policy](https://policies.google.com/privacy)

### Gmail API

Used only when Gmail API is the selected sending method. On a send, Solviroa submits
the authorized message to Gmail, including the message envelope/content needed for
delivery. The `openid`, `email` and `gmail.send` scopes are used by the configured
OAuth flow.

 * API endpoint used: `gmail.googleapis.com`
 * OAuth scope identifier used by the authorization flow: `www.googleapis.com/auth/
   gmail.send`
 * Service: [Gmail API](https://gmail.googleapis.com/)
 * Terms: [Google APIs Terms](https://developers.google.com/terms)
 * Privacy: [Google Privacy Policy](https://policies.google.com/privacy)

### Microsoft OAuth

Used when an administrator chooses Microsoft OAuth. Solviroa sends the OAuth client/
application data, redirect URI, requested scopes and OAuth protocol values during
authorization. It does not receive the user’s normal Microsoft password.

 * Authorization/token endpoint domain used: `login.microsoftonline.com`
 * Service: [Microsoft identity platform](https://login.microsoftonline.com/)
 * Terms: [Microsoft Services Agreement](https://www.microsoft.com/servicesagreement)
 * Privacy: [Microsoft Privacy Statement](https://www.microsoft.com/en-us/privacy/privacystatement)

### Microsoft Graph

Used after Microsoft OAuth to read the authorized account identity and to submit
mail when Microsoft Graph is the selected method. Current delegated scopes include`
openid`, `profile`, `email`, `offline_access`, `User.Read` and `Mail.Send`. Message
data is sent only when a message is submitted.

 * API endpoint domain used: `graph.microsoft.com`
 * Service: [Microsoft Graph](https://graph.microsoft.com/)
 * Terms: [Microsoft Services Agreement](https://www.microsoft.com/servicesagreement)
 * Privacy: [Microsoft Privacy Statement](https://www.microsoft.com/en-us/privacy/privacystatement)

### Brevo

Used only when Brevo is selected. Solviroa can send the configured API key for an
account/preflight check and can submit sender, recipients, subject, headers, body
and attachments when sending transactional email.

 * API endpoint domain used: `api.brevo.com`
 * Service: [Brevo](https://www.brevo.com/)
 * Terms: [Brevo Terms](https://www.brevo.com/legal/termsofuse/)
 * Privacy: [Brevo Privacy Policy](https://www.brevo.com/legal/privacypolicy/)

### SendGrid

Used only when SendGrid API is selected. During preflight, Solviroa sends the configured
API key plus a small sandbox message payload built from the configured sender and
Solviroa preflight text; SendGrid validates the request in Sandbox Mode and does
not deliver that preflight message. During a real send, Solviroa sends the configured
API key and the message data required for delivery.

 * API endpoint domain used: `api.sendgrid.com`
 * Service: [SendGrid](https://sendgrid.com/)
 * Terms: [Twilio Terms](https://www.twilio.com/en-us/legal/tos)
 * Privacy: [Twilio Privacy Notice](https://www.twilio.com/en-us/legal/privacy)

### Mailgun (US/EU)

Used only when Mailgun API is selected. During preflight, Solviroa sends the configured
API key, selected region, sending domain, configured sender and a small Solviroa
preflight payload with Mailgun test mode enabled, so the preflight request is validated
but not delivered. During a real send, Solviroa sends the configured API key/domain
plus the message data required for delivery to the selected US or EU endpoint.

 * API endpoint domains used: `api.mailgun.net` (US) and `api.eu.mailgun.net` (EU)
 * Service: [Mailgun](https://www.mailgun.com/)
 * Terms: [Mailgun Terms](https://www.mailgun.com/legal/terms/)
 * Privacy: [Mailgun Privacy Policy](https://www.mailgun.com/legal/privacy-policy/)

### Postmark

Used only when Postmark is selected. Solviroa sends the configured server token 
for server/preflight checks and sends message data to the Email API when a message
is submitted.

 * API endpoint domain used: `api.postmarkapp.com`
 * Service: [Postmark](https://postmarkapp.com/)
 * Terms: [Postmark Terms](https://postmarkapp.com/terms-of-service)
 * Privacy: [Postmark Privacy Policy](https://postmarkapp.com/privacy-policy)

### Resend

Used only when Resend is selected. Solviroa sends the configured API key and message
data to Resend when a transactional message is submitted.

 * API endpoint domain used: `api.resend.com`
 * Service: [Resend](https://resend.com/)
 * Terms: [Resend Terms](https://resend.com/legal/terms-of-service)
 * Privacy: [Resend Privacy Policy](https://resend.com/legal/privacy-policy)

### MailerSend

Used only when MailerSend is selected. Solviroa sends the configured API token for
domain/preflight checks and sends message data to the Email API when a message is
submitted.

 * API endpoint domain used: `api.mailersend.com`
 * Service: [MailerSend](https://www.mailersend.com/)
 * Terms: [MailerSend Terms](https://www.mailersend.com/legal/terms-of-use)
 * Privacy: [MailerSend Privacy Policy](https://www.mailersend.com/legal/privacy-policy)

### SMTP2GO

Used only when SMTP2GO API is selected. Solviroa sends the configured API key for
account/preflight checks and sends message data to the Email API when a message 
is submitted.

 * API endpoint domain used: `api.smtp2go.com`
 * Service: [SMTP2GO](https://www.smtp2go.com/)
 * Terms: [SMTP2GO Terms](https://www.smtp2go.com/terms/)
 * Privacy: [SMTP2GO Privacy Policy](https://www.smtp2go.com/privacy/)

### Amazon SES

Used only when Amazon SES is selected. Solviroa signs requests with the configured
AWS access credentials and selected region. Account-status requests are sent during
preflight; sender, recipients and message content are sent to the regional SES v2
endpoint when email is submitted.

 * Regional API endpoint pattern used: `email.<region>.amazonaws.com`
 * Service: [Amazon SES](https://aws.amazon.com/ses/)
 * Terms: [AWS Service Terms](https://aws.amazon.com/service-terms/)
 * Privacy: [AWS Privacy Notice](https://aws.amazon.com/privacy/)

### SparkPost / Bird (US/EU)

Used only when an administrator selects SparkPost as the transactional email provider.
During the connection preflight, Solviroa sends the configured SparkPost API key
for authentication and the domain part of the configured sender email address to
SparkPost’s Sending Domains API so the selected US or EU account can be checked.
When WordPress submits a real email through the activated SparkPost connection, 
Solviroa sends the API key plus the message data required for delivery, which can
include the sender, To/CC/BCC recipients, Reply-To, subject, headers, body and attachments,
to SparkPost’s Transmissions API. Solviroa does not contact SparkPost unless the
administrator has selected/configured SparkPost and runs a connection check or WordPress
sends mail through that connection. SparkPost is now part of Bird.

 * API endpoint used for US accounts: `https://api.sparkpost.com/api/v1`
 * API endpoint used for EU accounts: `https://api.eu.sparkpost.com/api/v1`
 * Service: [SparkPost by Bird](https://bird.com/products/email/sparkpost)
 * SparkPost Terms of Service: [Terms of Service for SparkPost](https://bird.com/en-us/legal/terms-previous-sparkpost)
 * Current Bird Terms: [Bird General Terms and Conditions](https://bird.com/legal/terms)
 * Privacy: [Bird Privacy Statement](https://bird.com/legal/privacy)

### Mailjet

Used only when Mailjet is selected. During preflight, Solviroa sends the configured
API credentials plus a small sandbox payload built from the configured sender and
Solviroa preflight text; Mailjet validates it in Sandbox Mode without delivering
the message. During a real send, Solviroa sends the configured API credentials and
the message data required for delivery to Send API v3.1.

 * API endpoint domain used: `api.mailjet.com`
 * Service: [Mailjet](https://www.mailjet.com/)
 * Terms: [Mailjet Terms](https://www.mailjet.com/legal/terms/)
 * Privacy: [Mailjet Privacy Policy](https://www.mailjet.com/legal/privacy-policy/)

### Elastic Email

Used only when Elastic Email is selected. Solviroa sends the configured API key 
for API-key checks and sends message data to the transactional email endpoint when
email is submitted.

 * API endpoint domain used: `api.elasticemail.com`
 * Service: [Elastic Email](https://elasticemail.com/)
 * Terms: [Elastic Email Terms](https://elasticemail.com/resources/usage-policies/terms-of-use)
 * Privacy: [Elastic Email Privacy Policy](https://elasticemail.com/resources/usage-policies/privacy-policy)

### Preset SMTP services

The following SMTP presets are optional. A network connection to the named SMTP 
service occurs only when the administrator selects/configures that provider and 
runs a connection test or when WordPress submits mail through the activated connection.
The SMTP service receives the configured authentication data during authentication
and receives the message envelope/content when a real message is sent. Simulation
Mode stops the message before the provider is contacted.

 * **Hostinger Email** — preset for `smtp.hostinger.com`. [Service](https://www.hostinger.com/email-hosting)·
   [Terms](https://www.hostinger.com/legal/universal-terms-of-service-agreement)·
   [Privacy](https://www.hostinger.com/legal/privacy-policy)
 * **Titan Email** — preset for `smtp.titan.email`. [Service](https://titan.email/)·
   [Terms](https://support.titan.email/hc/en-us/articles/900000761843-Titan-End-User-Terms-of-Use)·
   [Privacy](https://support.titan.email/hc/en-us/articles/360038535773-Titan-Privacy-Policy)
 * **Gmail / Google Workspace SMTP** — optional app-password SMTP path for `smtp.
   gmail.com`; Google OAuth/Gmail API are documented separately above. [Service](https://mail.google.com/)·
   [Terms](https://policies.google.com/terms) · [Privacy](https://policies.google.com/privacy)
 * **Microsoft 365 / Outlook SMTP** — optional compatibility SMTP path for `smtp.
   office365.com`; Microsoft OAuth/Graph are documented separately above. [Service](https://www.microsoft.com/microsoft-365/outlook/outlook-for-business)·
   [Terms](https://www.microsoft.com/servicesagreement) · [Privacy](https://www.microsoft.com/en-us/privacy/privacystatement)
 * **Yahoo Mail SMTP** — preset for `smtp.mail.yahoo.com` using an app password.
   [Service](https://mail.yahoo.com/) · [Terms](https://legal.yahoo.com/index.html)·
   [Privacy](https://legal.yahoo.com/us/en/yahoo/privacy/index.html)
 * **iCloud Mail SMTP** — preset for `smtp.mail.me.com` using an app-specific password.
   [Service](https://www.icloud.com/mail/) · [Terms](https://www.apple.com/legal/internet-services/icloud/la/terms.html)·
   [Privacy](https://www.apple.com/legal/privacy/)
 * **Zoho Mail SMTP** — provider-specific SMTP details are supplied by the administrator
   because Zoho endpoints can vary by account/data centre. [Service](https://www.zoho.com/mail/)·
   [Terms](https://www.zoho.com/terms.html) · [Privacy](https://www.zoho.com/privacy.html)
 * **Brevo SMTP Relay** — preset for `smtp-relay.brevo.com`. [Service](https://www.brevo.com/)·
   [Terms](https://www.brevo.com/legal/termsofuse/) · [Privacy](https://www.brevo.com/legal/privacypolicy/)
 * **SendGrid SMTP** — preset for `smtp.sendgrid.net`. [Service](https://sendgrid.com/)·
   [Terms](https://www.twilio.com/en-us/legal/tos) · [Privacy](https://www.twilio.com/en-us/legal/privacy)
 * **MailerSend SMTP** — preset for `smtp.mailersend.net`. [Service](https://www.mailersend.com/)·
   [Terms](https://www.mailersend.com/legal/terms-of-use) · [Privacy](https://www.mailersend.com/legal/privacy-policy)

### User-configured SMTP services

When SMTP is selected, Solviroa connects only to the SMTP server configured or chosen
by the administrator. This can include a hosting mailbox or services such as Hostinger,
Titan, Gmail, Microsoft 365, Yahoo, iCloud, Zoho, Brevo SMTP, SendGrid SMTP, MailerSend
SMTP or another SMTP service. The selected SMTP server receives the authentication
data and message envelope/content necessary to deliver the message. The administrator
chooses that server, so its own terms, privacy and retention policies apply.

### DNS checks

MX, SPF, DKIM, DMARC and nameserver checks use PHP DNS functions and the DNS resolver
configured by the website/server environment. They are read-only. Solviroa does 
not use a hard-coded third-party DNS API and never writes DNS records.

### Remote assets and telemetry

Solviroa does not remotely load JavaScript, CSS, fonts, images, iframes or executable
plugin code. It does not send analytics or telemetry to the developer. Provider 
API/OAuth requests described above are made only to provide the selected mail service.

### Local privacy and storage

Connection settings and encrypted credentials are stored in WordPress options. Free
mail history is stored in the site’s Solviroa table and may include status, category,
recipient summary, subject, source, provider, transport, tracking/provider message
identifiers, attachment count, retry/temporary flags, technical error details and
timestamps. Solviroa Free does not store message bodies or attachment contents in
its mail log.

## Screenshots

[[

[[

[[

[[

[[

[[

[[

## Installation

 1. In WordPress, go to Plugins > Add New > Upload Plugin and upload the Solviroa ZIP
    file, or upload the `solviroa` folder to `/wp-content/plugins/`.
 2. Activate Solviroa.
 3. Open Solviroa in WordPress admin and follow the setup wizard.
 4. Select a connection method and enter the credentials supplied by that provider.
 5. Run the connection preflight and, if desired, send a test message to a mailbox 
    you control.
 6. Complete the wizard to enable the WordPress mail route.

## FAQ

### Does a Health check send an email?

No. Health and deliverability checks are read-only and do not send a message.

### Does an accepted message guarantee Inbox delivery?

No. Accepted means the configured provider accepted the submission. It does not 
prove that the recipient’s provider placed the message in the Inbox.

### Can I test without delivering a real message?

Yes. Simulation Mode can exercise the mail flow without delivering a real email.
Disable it again before using the normal mail route.

### Is Solviroa Pro required?

No. Free works independently. Pro is a separate optional add-on for continuity and
advanced routing/reporting features.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Solviroa – Email Setup & Deliverability” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ Maira Foresto ](https://profiles.wordpress.org/mairaforesto/)

[Translate “Solviroa – Email Setup & Deliverability” into your language.](https://translate.wordpress.org/projects/wp-plugins/solviroa)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/solviroa/), check out
the [SVN repository](https://plugins.svn.wordpress.org/solviroa/), or subscribe 
to the [development log](https://plugins.trac.wordpress.org/log/solviroa/) by [RSS](https://plugins.trac.wordpress.org/log/solviroa/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.2.4

 * Localize previously saved MX server-count diagnostics when displayed, in both
   English and Spanish, without rescanning or changing DNS data.
 * Keep native browser date fields, whose built-in picker labels follow the browser’s
   UI localization.

#### 0.2.3

 * Respect the administrator’s WordPress profile language on Solviroa admin pages
   and authenticated AJAX; fall back to the site language when the user has not 
   selected a language.
 * Preserve localized rendering of canonical and previously saved diagnostics without
   changing stored settings, SMTP connections or integrations.

#### 0.2.2

 * Fixed onboarding scan copy mixing languages: diagnostics are saved in canonical
   English and localized when displayed, including previously saved scans.
 * Solviroa admin pages and authenticated AJAX messages now follow the site language
   regardless of administrator profile locale.
 * No changes to email transport, credentials, connection settings or stored scan
   signals.

#### 0.2.1

 * Compliance: expanded the SparkPost/Bird external-service disclosure with explicit
   US/EU API endpoints, data sent during preflight and sending, and direct Terms
   and Privacy links.

#### 0.2.0

 * Fixed onboarding and admin actions that could stop before AJAX when isolated 
   UI modules did not have access to the local translation helper.
 * No mail transport, provider, settings, or data-storage behavior changed.

#### 0.1.99

 * Compliance: added translator comments for placeholder strings and simplified 
   one JavaScript placeholder string.
 * Compliance: removed the unnecessary explicit load_plugin_textdomain() call for
   WordPress.org-hosted translations.

#### 0.1.98

 * Documented the exact API endpoint domains used by every external service integration,
   including SparkPost US/EU, to make third-party network usage explicit for WordPress.
   org review.

#### 0.1.96

 * Fixed the local assistant translation helper scope so read-only assistant questions
   no longer fail with a JavaScript ReferenceError.
 * Added an explicit description of Solviroa’s migration-first, diagnostic-first
   workflow for WordPress.org review clarity.
 * Clarified the exact data sent by provider sandbox/test-mode preflight requests.

#### 0.1.95

 * Renamed the public plugin identity to Solviroa – Email Setup & Deliverability.
 * Improved WordPress.org compliance for external-service disclosure, optional remote
   links and core-file loading.
 * Clarified Solviroa’s guided migration, diagnostics and deliverability workflow.

#### 0.1.94

 * Improved Solviroa Pro assistant status answers for routing rules, alerts, incidents
   and continuity behavior.

#### 0.1.93

 * Initial WordPress.org release of Solviroa Free, including guided setup, provider
   connections, health and DNS checks, local assistant, Simulation Mode and mail
   history.

## Meta

 *  Version **0.2.4**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.3 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 7.3 or higher **
 * Tags
 * [deliverability](https://wordpress.org/plugins/tags/deliverability/)[dns](https://wordpress.org/plugins/tags/dns/)
   [email](https://wordpress.org/plugins/tags/email/)[smtp](https://wordpress.org/plugins/tags/smtp/)
   [wp-mail](https://wordpress.org/plugins/tags/wp-mail/)
 *  [Advanced View](https://wordpress.org/plugins/solviroa/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/solviroa/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/solviroa/reviews/)

## Contributors

 *   [ Maira Foresto ](https://profiles.wordpress.org/mairaforesto/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/solviroa/)