Title: TechWizard Mail SMTP
Author: techwizardkft
Published: <strong>September 7, 2026</strong>
Last modified: September 7, 2026

---

Search plugins

![](https://ps.w.org/techwizard-mail-smtp/assets/banner-772x250.png?rev=3684960)

![](https://ps.w.org/techwizard-mail-smtp/assets/icon.svg?rev=3684960)

# TechWizard Mail SMTP

 By [techwizardkft](https://profiles.wordpress.org/techwizardkft/)

[Download](https://downloads.wordpress.org/plugin/techwizard-mail-smtp.1.0.2.zip)

 * [Details](https://test.wordpress.org/plugins/techwizard-mail-smtp/#description)
 * [Reviews](https://test.wordpress.org/plugins/techwizard-mail-smtp/#reviews)
 *  [Installation](https://test.wordpress.org/plugins/techwizard-mail-smtp/#installation)
 * [Development](https://test.wordpress.org/plugins/techwizard-mail-smtp/#developers)

 [Support](https://wordpress.org/support/plugin/techwizard-mail-smtp/)

## Description

TechWizard Mail SMTP provides one primary custom SMTP or direct API connection for
Gmail, Brevo, SendGrid, Mailgun, Postmark, Resend, SMTP2GO, Amazon SES, Microsoft
Graph, MailerSend, Mailjet, Elastic Email, or Bird. It includes sender policies,
test email, failure-only diagnostics, local conflict detection, manual SPF/DMARC/
DKIM status checks, secret-free configuration transfer, and fail-safe migration 
of public SMTP settings from WP Mail SMTP, Easy WP SMTP, or Post SMTP without copying
credentials.

Passwords, API credentials, Client Secrets, and Refresh Tokens are stored separately
in non-autoloaded database options and are never read back into admin forms. Normal
setup requires no wp-config.php editing. Failure diagnostics do not store recipients,
subjects, bodies, headers, attachments, or raw provider responses.

Every provider connection belongs to the site administrator and communicates directly
with that provider. Gmail requests only `gmail.send`; Microsoft requests only offline
access and delegated `Mail.Send`; API adapters use credentials created in the administrator’s
own provider account. No TechWizard OAuth relay, credential broker, shared provider
account, or email proxy is used. Activating a route disables every other route without
deleting its settings.

The manual DNS check runs only when submitted by an administrator and retains only
short-lived found, missing, unavailable, or not-checked states. It does not store
or display TXT record content and does not guarantee delivery.

## Installation

 1. Upload the plugin directory to `/wp-content/plugins/`.
 2. Activate TechWizard Mail SMTP through the Plugins screen.
 3. Open TechWizard > Mail SMTP.

## FAQ

### External services and data disclosure

### Google OAuth and Gmail API

The Gmail adapter requires a Google account, a Google Cloud project with Gmail API
enabled, and an OAuth Web application created and controlled by the site administrator.
Google account limits and terms apply.

When an administrator clicks Connect, the browser is redirected to `https://accounts.
google.com/o/oauth2/v2/auth` with the OAuth Client ID, exact callback URL, requested`
gmail.send` scope, and a single-use security state. After consent, the site sends
the authorization code, Client ID, Client Secret, and callback URL to `https://oauth2.
googleapis.com/token`. Before each Gmail delivery, the site sends the stored Refresh
Token, Client ID, and Client Secret to the same token endpoint to obtain a short-
lived Access Token.

When Gmail is active and WordPress sends an email, the plugin sends the complete
RFC 2822 MIME message to `https://gmail.googleapis.com/gmail/v1/users/me/messages/
send`. This includes the sender, recipients, CC/BCC recipients, subject, headers,
message body, and any attachments supplied to `wp_mail()`. When an administrator
disconnects Gmail, the stored Refresh Token is sent to `https://oauth2.googleapis.
com/revoke` for revocation before local removal. No Gmail data is sent merely by
viewing the settings page.

Google API Services User Data Policy: https://developers.google.com/terms/api-services-
user-data-policy

Google Privacy Policy: https://policies.google.com/privacy

Google Terms of Service: https://policies.google.com/terms

### Brevo transactional API and SMTP relay

The Brevo setup guide is for a Brevo account owned and controlled by the site administrator.
It explains how to verify a sender, authenticate a sending domain, and create either
a dedicated v3 API key for direct HTTPS API delivery or a dedicated SMTP key for
the alternative SMTP route. The plugin connects directly to `api.brevo.com` or `
smtp-relay.brevo.com`; neither connection passes through TechWizard.

Saving the connection settings does not contact Brevo. When an administrator sends
a test email, or when a Brevo route is active and WordPress calls `wp_mail()`, the
site sends the API key to `https://api.brevo.com/v3/smtp/email` or the SMTP login
and SMTP key to the relay for authentication. It also sends the complete email through
Brevo. Email data can include the sender, recipients, CC/BCC recipients, reply-to
address, subject, message body, and attachments supplied to `wp_mail()`. A Brevo
account is required, and Brevo account limits and terms apply.

Brevo Privacy Policy: https://www.brevo.com/legal/privacypolicy/

Brevo Terms of Use: https://www.brevo.com/legal/termsofuse/

### SendGrid Mail Send API

The SendGrid setup guide is for a SendGrid account owned and controlled by the site
administrator. It explains how to verify a Single Sender or authenticate a sending
domain and how to create a restricted API key with only Mail Send access. A SendGrid
account is required; SendGrid plan, account, regional-subuser, and sending limits
and terms apply.

Saving the connection settings or merely viewing the settings page does not contact
SendGrid. When an administrator sends a direct test, or when SendGrid is active 
and WordPress calls `wp_mail()`, the site sends the API key in a Bearer authorization
header and the complete email to `https://api.sendgrid.com/v3/mail/send` or, only
for a configured EU regional subuser, `https://api.eu.sendgrid.com/v3/mail/send`.
Email data can include the sender, recipients, CC/BCC recipients, reply-to address,
subject, plain-text or HTML body, and attachments supplied to `wp_mail()`. The connection
is direct and does not pass through TechWizard. An HTTP 202 response means SendGrid
accepted the request; it does not prove final delivery.

Twilio Privacy Notice: https://www.twilio.com/en-us/legal/privacy

Twilio Terms of Service: https://www.twilio.com/en-us/legal/tos

### Mailgun MIME Messages API

The Mailgun setup guide is for a Mailgun account and sending domain owned and controlled
by the site administrator. It explains how to add and authenticate a sending domain,
select the same US or EU region in WordPress, and create a Domain Sending Key with
access limited to that domain’s message endpoints. A Mailgun account is required;
Mailgun plan, account, domain, sending, recipient, and regional limits and terms
apply.

Saving the connection settings or merely viewing the settings page does not contact
Mailgun. When an administrator sends a direct test, or when Mailgun is active and
WordPress calls `wp_mail()`, the site sends the API key in an HTTP Basic authorization
header plus the envelope recipients and complete MIME email to `https://api.mailgun.
net/v3/{sending-domain}/messages.mime` or `https://api.eu.mailgun.net/v3/{sending-
domain}/messages.mime`. Email data can include the sending domain, sender, recipients,
CC/BCC recipients, reply-to address, subject, headers, plain-text or HTML body, 
and attachments supplied to `wp_mail()`. The connection is direct and does not pass
through TechWizard. An HTTP 200 response means Mailgun accepted the request; it 
does not prove final delivery.

Mailgun Privacy Policy: https://www.mailgun.com/legal/privacy-policy/

Mailgun Terms of Service: https://www.mailgun.com/legal/terms/

### Postmark Email API

The Postmark setup guide is for a Postmark account and Server owned and controlled
by the site administrator. It explains how to verify a Sender Signature or sending
domain and where to copy the Server API token. Use a Server API token for the selected
Server, not an Account API token, SMTP token, or TechWizard-owned credential. A 
Postmark account is required; Postmark plan, account, Server, sender, message-stream,
recipient, and sending limits and terms apply.

Saving the connection settings or merely viewing the settings page does not contact
Postmark. When an administrator sends a direct test, or when Postmark is active 
and WordPress calls `wp_mail()`, the site sends the Server API token in the `X-Postmark-
Server-Token` header and the complete email to the fixed `https://api.postmarkapp.
com/email` endpoint. Email data can include the sender, recipients, CC/BCC recipients,
reply-to address, subject, custom headers, plain-text or HTML body, and attachments
supplied to `wp_mail()`. The connection is direct and does not pass through TechWizard.
The adapter uses the transactional `outbound` message stream, permits at most 50
combined recipients, and conservatively bounds the encoded request below Postmark’s
10 MB total-message limit. An HTTP 200 response with `ErrorCode` 0 and a MessageID
means Postmark accepted the request; it does not prove final delivery.

Postmark Privacy Policy: https://postmarkapp.com/privacy-policy

Postmark Terms of Service: https://postmarkapp.com/terms-of-service

### Resend Email API

The Resend setup guide is for a Resend account and sending domain owned and controlled
by the site administrator. It explains how to add and verify a domain with the SPF
and DKIM records supplied by Resend and how to create a Sending access API key, 
preferably restricted to that domain. The API key is shown by Resend only once and
remains write-only after it is saved in WordPress. A Resend account is required;
Resend plan, account, domain, recipient, rate, quota, and sending limits and terms
apply.

Saving the connection settings or merely viewing the settings page does not contact
Resend. When an administrator sends a direct test, or when Resend is active and 
WordPress calls `wp_mail()`, the site sends the API key in a Bearer authorization
header and the complete email to the fixed `https://api.resend.com/emails` endpoint.
Email data can include the sender, recipients, CC/BCC recipients, reply-to addresses,
subject, custom headers, plain-text or HTML body, and attachments supplied to `wp_mail()`.
The connection is direct and does not pass through TechWizard. The adapter conservatively
permits at most 50 combined recipients and 28 MB of raw attachments so that Base64-
encoded attachments remain below Resend’s 40 MB limit. An HTTP 200 response with
a message ID means Resend accepted the request; it does not prove final delivery.
Without a verified domain, Resend limits testing to the account owner’s email address.

Resend Privacy Policy: https://resend.com/legal/privacy-policy

Resend Terms of Service: https://resend.com/legal/terms-of-service

### SMTP2GO Email API

The SMTP2GO setup guide is for an SMTP2GO account owned and controlled by the site
administrator. It explains how to verify a Sender domain or Single sender email 
and how to create a 36-character `api-`-prefixed API key restricted to the `/email/
send` permission. The full key must be obtained with the Copy action in the API 
Keys list; the value masked with x characters on screen must not be copied manually.
A verified Sender domain with the SPF and DKIM records supplied by SMTP2GO is recommended.
An SMTP2GO account is required; SMTP2GO plan, account, verified-sender, regional,
recipient, message-size, quota, and sending limits and terms apply.

Saving the connection settings or merely viewing the settings page does not contact
SMTP2GO. When an administrator sends a direct test, or when SMTP2GO is active and
WordPress calls `wp_mail()`, the site sends the API key in the `X-Smtp2go-Api-Key`
header and the complete email to exactly one administrator-selected endpoint: `https://
api.smtp2go.com/v3/email/send`, `https://eu-api.smtp2go.com/v3/email/send`, `https://
us-api.smtp2go.com/v3/email/send`, or `https://au-api.smtp2go.com/v3/email/send`.
Email data can include the sender, recipients, CC/BCC recipients, reply-to addresses,
subject, custom headers, plain-text or HTML body, and attachments supplied to `wp_mail()`.
The connection is direct and does not pass through TechWizard. The adapter permits
at most 100 combined recipients and conservatively limits raw attachments to 34 
MB while bounding the encoded JSON request to 50 MB. A successful API response with
an email ID means SMTP2GO accepted the request; it does not prove final delivery.

SMTP2GO Privacy Policy: https://www.smtp2go.com/privacy/

SMTP2GO Terms of Service: https://www.smtp2go.com/terms/

### Amazon SES v2 SendEmail API

The Amazon SES setup guide is for an AWS account owned and controlled by the site
administrator. It requires a verified SES domain or email identity in the selected
AWS Region and a dedicated IAM user without console access. Because the adapter 
submits Raw MIME through the SES v2 `SendEmail` endpoint, the IAM policy must permit
only `ses:SendEmail` and `ses:SendRawEmail` and should be scoped to the verified
SES identity; an AWS root access key or AdministratorAccess must not be used. The
IAM user’s Access key ID and Secret access key are stored together in a separate
non-autoloaded, write-only database option. An AWS account is required; AWS Region,
identity, sandbox or production access, sending-rate, daily-quota, recipient, message-
size, billing, and service terms apply. While an SES account is in the sandbox, 
recipients must also be verified or use the mailbox simulator.

Saving the connection settings or merely viewing the settings page does not contact
AWS. When an administrator sends a direct test, or when Amazon SES is active and
WordPress calls `wp_mail()`, the site signs the request with AWS Signature Version
4 and sends it directly to the selected allowlisted commercial AWS Region at `https://
email.{region}.amazonaws.com/v2/email/outbound-emails`. Email data can include the
sender, To/CC/BCC recipients, reply-to addresses, subject, custom headers, complete
plain-text or HTML MIME content, and attachments supplied to `wp_mail()`. The connection
does not pass through TechWizard. The adapter permits at most 50 combined recipients,
conservatively limits raw attachments to 28 MB, and limits the complete MIME message
to 40 MB. A successful response containing a MessageId means SES accepted the request;
it does not prove final delivery.

AWS Privacy Notice: https://aws.amazon.com/privacy/

AWS Service Terms: https://aws.amazon.com/service-terms/

### Microsoft identity platform and Microsoft Graph sendMail

The Microsoft setup guide is for a Microsoft account, mailbox, and Entra Web application
owned and controlled by the site administrator. Creating the application requires
an Entra tenant and sufficient application-developer permission; according to Microsoft’s
current registration prerequisites, a personal Microsoft account that is not associated
with a directory may first need Azure registration or an eligible Microsoft 365 
developer tenant. The plugin cannot create or bypass that Microsoft prerequisite.
The application may support Microsoft 365 work accounts, personal Outlook.com accounts,
or a single organization. It must register the exact callback URL shown by the plugin
as a Web redirect URI and grant only delegated `Mail.Send`; the plugin also requests`
offline_access` so WordPress can send later. The Application (client) ID is public
configuration. The Client Secret Value and Refresh Token are stored in a separate
non-autoloaded, write-only database option. Do not enter the Secret ID. A Microsoft
account and an eligible Exchange Online or Outlook.com mailbox are required; tenant
policy, mailbox, consent, message-size, recipient, throttling, sending, and service
limits and terms apply. Registration prerequisites: https://learn.microsoft.com/
en-us/entra/identity-platform/quickstart-register-app

Saving settings or merely viewing the settings page does not contact Microsoft. 
When an administrator clicks Connect, the browser opens `https://login.microsoftonline.
com/{tenant}/oauth2/v2.0/authorize` with the Application ID, exact callback URL,
requested scope, PKCE challenge, and single-use state. After consent, and again 
before each send, the site posts the required authorization-code or refresh-token
data directly to `https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token`.
When an administrator sends a direct test, or when Microsoft Graph is active and
WordPress calls `wp_mail()`, the site sends the complete Base64-encoded MIME email
directly to `https://graph.microsoft.com/v1.0/me/sendMail`. The email can contain
the sender, To/CC/BCC recipients, reply-to addresses, subject, safe custom headers,
plain-text or HTML body, and attachments supplied to `wp_mail()`. The conservative
limits are 2.9 MB for MIME source, 3.9 MB for the encoded request, and 2 MB of raw
attachment source. A 202 Accepted response means Microsoft accepted the request;
it does not prove final delivery. Disconnecting deletes the local Refresh Token;
consent can be revoked separately in Microsoft My Apps. No Microsoft credential,
token, or email passes through TechWizard.

Microsoft Privacy Statement: https://privacy.microsoft.com/privacystatement

Microsoft Services Agreement: https://www.microsoft.com/servicesagreement

### MailerSend Email API

The MailerSend setup guide is for a MailerSend account and sending domain owned 
and controlled by the site administrator. Add the domain under Email  Domains and
publish the SPF, DKIM, and Return-Path DNS records until it is Verified. Under Integrations
MailerSend API, create a custom-permission token with Email set to Full access and
every other permission set to No access; select the relevant verified domain. MailerSend
may default a token without an explicit expiration to 24 hours, so choose, record,
and rotate an appropriate expiration for production. The token is displayed by the
provider only at creation and is stored by the plugin in a separate non-autoloaded,
write-only database option.

Saving settings or merely viewing the settings page does not contact MailerSend.
A direct test, or an active `wp_mail()` call, sends the sender, To/CC/BCC and Reply-
To recipients, subject, plain-text or HTML body, and supported attachments directly
to `https://api.mailersend.com/v1/email`. No token or email passes through TechWizard.
The adapter accepts at most 50 To, 10 CC, and 10 BCC recipients, one Reply-To address,
2 MB per text or HTML body part, and 25 MB of raw attachment source with extensions
supported by MailerSend. Arbitrary custom email headers are not forwarded because
MailerSend makes that feature plan-dependent; Reply-To remains supported. Only HTTP
202 with a non-empty `X-Message-Id` and without `X-Send-Paused: true` confirms API
acceptance, not final delivery.

MailerSend Privacy Policy: https://www.mailersend.com/legal/privacy-policy

MailerSend Terms of Use: https://www.mailersend.com/legal/terms-of-use

MailerSend Data Processing Addendum: https://www.mailersend.com/legal/data-processing-
addendum

### Mailjet Send API v3.1

The Mailjet setup guide is for a Mailjet account, API key pair, and verified sender
or sending domain owned and controlled by the site administrator. The administrator
should authenticate the full sending domain and publish the SPF and DKIM records
supplied by Mailjet for production use. The Mailjet API Key and Secret Key must 
belong to the same account/API-key entry. Both credentials are stored together in
a separate non-autoloaded, write-only database option; neither is displayed after
saving. A Mailjet account is required, and Mailjet plan, test-mode, account, sender,
recipient, rate, quota, attachment, and message-size limits and terms apply.

Saving settings or merely viewing the settings page does not contact Mailjet. A 
direct test, or an active `wp_mail()` call, sends the API Key and Secret Key in 
an HTTP Basic authorization header and sends the complete email directly to `https://
api.mailjet.com/v3.1/send`. Email data can include the sender, To/CC/BCC and Reply-
To recipients, subject, safe custom headers, plain-text or HTML body, and attachments
supplied to `wp_mail()`. No credential or email passes through TechWizard. The adapter
permits at most 50 combined recipients, one Reply-To address, 2 MB per body part,
20 attachments, and 10 MB total raw attachment source while bounding the JSON request
to 20 MB. Only HTTP 200 with one `success` message and matching recipient MessageUUID/
MessageID values confirms API acceptance, not final delivery.

Mailjet Privacy Policy: https://www.mailjet.com/legal/privacy-policy/

Mailjet Terms of Use: https://www.mailjet.com/legal/terms/

### Elastic Email REST API v4

The Elastic Email setup guide is for an Elastic Email account, API key, and verified
sender or sending domain owned and controlled by the site administrator. For production
use, the administrator should verify the full domain and publish the SPF and DKIM
records supplied by Elastic Email. Create a dedicated API key with only the `SendHttp`
access level; use an IP restriction only when the WordPress server has a stable,
known outbound IP. The API key is stored in a separate non-autoloaded, write-only
database option and is never displayed after saving. An Elastic Email account is
required, and its plan, account, sender, recipient, rate, quota, attachment, and
message-size limits and terms apply.

Saving settings or merely viewing the settings page does not contact Elastic Email.
A direct test, or an active `wp_mail()` call, sends the API key in the `X-ElasticEmail-
ApiKey` header and sends the complete email directly to `https://api.elasticemail.
com/v4/emails/transactional`. Email data can include the sender, To/CC/BCC and Reply-
To recipients, subject, safe custom headers, plain-text or HTML body, and attachments
supplied to `wp_mail()`. No credential or email passes through TechWizard. The adapter
permits at most 50 combined recipients, one Reply-To address, 2 MB per body part,
20 attachments, and 10 MB total raw attachment source while bounding the JSON request
to 20 MB. Only HTTP 200 with non-empty TransactionID and MessageID values confirms
API acceptance, not final delivery.

Elastic Email Privacy Policy: https://elasticemail.com/resources/usage-policies/
privacy-policy

Elastic Email Terms of Use: https://elasticemail.com/resources/usage-policies/terms-
of-use

### Bird Email API

The Bird setup guide is for a Bird account, regional `bk_eu1_...` or `bk_us1_...`
API key, and verified sending domain owned and controlled by the site administrator.
Create a dedicated key for the WordPress site in Email onboarding or Developers 
> API keys. Verify a sending domain with the DNS records supplied by Bird before
production delivery; the shared onboarding sender is limited to onboarding and sandbox
use. The key is stored in a separate non-autoloaded, write-only database option 
and is never displayed after saving. A Bird account is required, and its region,
plan, account, domain, recipient, rate, quota, attachment, message-size, and compliance
limits and terms apply.

Saving settings or merely viewing the settings page does not contact Bird. A direct
test, or an active `wp_mail()` call, sends the API key as a Bearer credential and
sends the complete email directly to exactly one selected endpoint: `https://eu1.
platform.bird.com/v1/email/messages` or `https://us1.platform.bird.com/v1/email/
messages`. Email data can include the sender, To/CC/BCC and Reply-To recipients,
subject, safe custom headers, plain-text or HTML body, and attachments supplied 
to `wp_mail()`. No credential or email passes through TechWizard. The adapter uses
the transactional category, disables open and click tracking, permits at most 50
combined recipients, 25 Reply-To addresses, 2 MB per body part, 20 attachments, 
and 10 MB total raw attachment source while bounding the JSON request to 20 MB. 
Only HTTP 202 with zero rejected recipients, the exact requested accepted-recipient
count, and a bounded `em_` message ID confirms API acceptance, not final delivery.

Bird Privacy Policy: https://bird.com/en-us/legal/privacy

Bird Terms of Use: https://bird.com/en-us/legal/terms

### Setup questions

### Can I migrate settings from another SMTP plugin?

Yes. The migration tool can read supported public settings from WP Mail SMTP Other
SMTP, Easy WP SMTP 2.x Other SMTP, or the primary SMTP connection in Post SMTP 3.
x. It runs only after an administrator submits the nonce-protected form, does not
contact an external service, does not modify the source plugin, never copies passwords,
OAuth tokens, API keys, fallback routes, forced recipients, or custom headers, and
leaves the imported route disabled until it is reviewed and completed.

### Do I need a Google API key for Gmail?

No. The Gmail connection uses an OAuth 2.0 Web application Client ID and Client 
Secret created in a Google Cloud project owned by the site administrator. The Gmail
API tab contains a current, step-by-step setup guide, the exact redirect URI for
the site, links to the relevant Google Cloud pages, and troubleshooting for common
OAuth errors. The connection does not pass through TechWizard.

### Why does a Gmail connection stop after seven days?

Google may expire offline authorization and the Refresh Token after seven days while
an External OAuth app remains in Testing status. Review the project’s Audience setting
and Google’s current publishing and verification requirements before production 
use.

### Where do I get the Brevo SMTP key?

Open the Brevo tab in TechWizard Mail SMTP. It provides a step-by-step guide with
direct links to sender verification, domain authentication, and the Brevo SMTP key
page, followed by the exact host, port, encryption, and authentication settings.
Use a dedicated SMTP key, not a Brevo API key or your account password.

### Where do I get the Brevo API key?

Open the Brevo tab and follow the direct API guide. Create a dedicated v3 API key
in your own Brevo account, paste it into the write-only field, save, and send a 
direct API test before activating the route. Use an API key for this route, not 
an SMTP key or your account password.

### Where do I get the SendGrid API key?

Open the SendGrid tab and follow the built-in setup guide. Create a Restricted Access
key in your own SendGrid account, enable only Mail Send, paste the SG.-prefixed 
key into the write-only field, select the region that belongs to the account, and
send a direct API test before activating the route.

### How do I configure Mailgun?

Open the Mailgun tab and follow the built-in setup guide. In your own Mailgun account,
add and authenticate a sending domain, note whether it is in the US or EU region,
create a Domain Sending Key for that domain, then enter the same region, domain,
verified sender, and write-only key in WordPress. Send a direct API test before 
activating the route.

### How do I configure Postmark?

Open the Postmark tab and follow the built-in setup guide. In your own Postmark 
account, verify a Sender Signature or sending domain, open the Server that will 
send WordPress email, and copy that Server’s API token. Enter the verified sender
and the write-only Server API token in WordPress, save, and send a direct API test
before activating the route. Do not use an Account API token or SMTP token.

### How do I configure Resend?

Open the Resend tab and follow the built-in setup guide. In your own Resend account,
add a sending domain, publish the supplied SPF and DKIM records, and wait for Verified
status. Create a Sending access API key, preferably restricted to that domain, copy
the one-time `re_`-prefixed value into the write-only field, enter a sender at the
verified domain, save, and send a direct API test before activating the route.

### How do I configure SMTP2GO?

Open the SMTP2GO tab and follow the built-in setup guide. In your own SMTP2GO account,
verify a Sender domain or Single sender email and create an API key with only `/
email/send` permission. In the API Keys list, use the Copy action to obtain the 
complete 36-character `api-`-prefixed key; do not manually copy the value masked
with x characters. Paste it into the write-only field, select the region that belongs
to your account, enter the verified sender, save, and send a direct API test before
activating the route.

### How do I configure Amazon SES?

Open the Amazon SES tab and follow the built-in setup guide. In your own AWS account,
choose one Region, verify a domain with Easy DKIM or verify one email address, and
check whether that Region is still in the SES sandbox. Create a dedicated IAM user
without console access, attach a policy that grants only `ses:SendEmail` and `ses:
SendRawEmail` for the verified identity ARN, then create an Access key for an application
running outside AWS. Paste the one-time Secret access key together with its Access
key ID into the write-only fields, select the same Region, enter the verified sender,
save, and send a direct API test before activating the route. Do not use root credentials
or AdministratorAccess.

### How do I configure Microsoft 365 or Outlook?

Open the Microsoft 365 tab and follow the built-in setup guide. You need an Entra
tenant and permission to register applications. If a personal Microsoft account 
is not associated with a directory and Entra offers only Azure registration or the
Microsoft 365 Developer Program, complete one of Microsoft’s eligible tenant paths
first or ask the administrator of an existing organization; the plugin cannot do
this for you. In your own tenant, register an Entra application, select the account
type you need, add the exact callback URL as a Web redirect URI, copy the Application(
client) ID, create and copy a Client Secret Value, and add only delegated Microsoft
Graph `Mail.Send`. Keep Tenant set to `common` for a multitenant application that
includes personal Microsoft accounts, or enter the Directory (tenant) ID for a single-
tenant application. Save the settings, connect the mailbox, approve the mail-sending
permission, send a direct test, and only then activate Microsoft Graph.

### How do I configure MailerSend?

Open the MailerSend tab and follow the built-in guide. In your own MailerSend account,
add and fully verify a sending domain, then create a custom-permission API token
with only Email set to Full access. Set and record an appropriate token expiration,
copy the full token immediately, paste it into the write-only field, enter a sender
address on the verified domain, save, and send a direct API test. Verify actual 
delivery in the recipient mailbox or MailerSend Activity before activating the route.

### How do I configure Mailjet?

Open the Mailjet tab and follow the built-in guide. In your own Mailjet account,
verify a sender or preferably the full sending domain with SPF and DKIM, open API
Key Management, and copy the API Key and its matching Secret Key. Paste both one-
time values into the write-only fields, enter a verified sender, save, and send 
a direct API test. Verify actual delivery in the recipient mailbox or Mailjet statistics
before activating the route.

### How do I configure Elastic Email?

Open the Elastic Email tab and follow the built-in guide. In your own account, verify
the sending domain with SPF and DKIM, create a dedicated API key with only SendHttp
permission, and copy the full key immediately. Paste it into the write-only field,
enter a verified sender, save, and send a direct API test. Verify actual delivery
in the recipient mailbox or Elastic Email Activity before activating the route.

### How do I configure Bird?

Open the Bird tab and follow the built-in guide. Create a dedicated API key in Bird
Email onboarding or Developers > API keys, select EU or US to match its `bk_eu1_`
or `bk_us1_` prefix, and copy the full one-time key into the write-only field. For
production, verify your own sending domain with Bird’s DNS records, enter a sender
on that domain, save, and send a direct API test. Verify actual delivery in the 
recipient mailbox or Bird Email log before activating the route.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“TechWizard Mail SMTP” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ techwizardkft ](https://profiles.wordpress.org/techwizardkft/)

[Translate “TechWizard Mail SMTP” into your language.](https://translate.wordpress.org/projects/wp-plugins/techwizard-mail-smtp)

### Interested in development?

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

## Changelog

#### 1.0.2

 * Let WordPress initialize PHPMailer before API transport replacement, eliminating
   direct loading of WordPress core mailer files while preserving recipients, headers,
   and attachments.
 * Added direct nonce verification to every state-changing administration handler
   and changed request processing to validate and sanitize individual fields instead
   of whole request arrays.

#### 1.0.1

 * Normalized and sanitized every state-changing administration action and nonce
   before explicit verification, while retaining capability checks before request
   processing.
 * Corrected the Postmark external-service disclosure to link directly to Postmark’s
   Privacy Policy and Terms of Service.

#### 1.0.0

 * First public release with custom SMTP and thirteen direct API mailers: Gmail,
   Brevo, SendGrid, Mailgun, Postmark, Resend, SMTP2GO, Amazon SES, Microsoft Graph,
   MailerSend, Mailjet, Elastic Email, and Bird.
 * Added sender policies, direct provider tests, failure-only diagnostics, conflict
   detection, manual DNS checks, secret-free configuration transfer, and safe migration
   from WP Mail SMTP, Easy WP SMTP, and Post SMTP.
 * Credentials remain write-only in non-autoloaded WordPress database options; every
   connection uses the administrator’s own provider account without a TechWizard
   mail or credential relay.

#### 0.5.0

 * Added a direct Bird Email API transport with user-owned EU1/US1 credentials, 
   a verified-domain guide, tracking disabled by default, idempotent requests, strict
   recipient acceptance checks, bounded attachments, and exclusive route activation.
 * Added Bird to the Pro routing and fallback allowlist without placing Pro runtime
   in the Free package.

#### 0.4.0

 * Added a direct Elastic Email REST API v4 transport with a user-owned, write-only,
   SendHttp-only API key, verified-domain guide, strict acceptance checks, bounded
   attachments, and exclusive route activation.
 * Added Mailjet and Elastic Email to the Pro routing connection allowlist without
   placing Pro runtime in the Free package.

#### 0.3.0

 * Added a direct Mailjet Send API v3.1 transport with a user-owned write-only API
   Key and Secret Key, verified-domain guide, strict recipient-level acceptance 
   checks, bounded attachments, and exclusive route activation.
 * Replaced route-count-specific help text with wording that remains accurate as
   providers are added.

#### 0.2.0

 * Added a versioned, secret-free connection catalog and request-scoped transport
   execution API for compatible extensions.
 * Added stable Gmail API failure categories for safe routing and diagnostics.

#### 0.1.1

 * Added a versioned, privacy-safe Core API bridge for Pro delivery auditing.

#### 0.1.0

 * Added the compatible core and administration scaffold.
 * Added one primary SMTP connection and sender policies.
 * Added plain-text and HTML test emails.
 * Added configurable, failure-only diagnostics.
 * Added local detection for known active SMTP plugins.
 * Added administrator-initiated SPF, DMARC, and optional DKIM public DNS status
   checks.
 * Added exact-schema JSON export/import without SMTP passwords.
 * Added a fail-safe WP Mail SMTP Other SMTP public-settings migration adapter without
   password transfer.
 * Added a fail-safe Easy WP SMTP 2.x Other SMTP public-settings migration adapter
   without password transfer or source modification.
 * Added a fail-safe Post SMTP 3.x primary SMTP public-settings migration adapter
   without credential, fallback, or forced-recipient transfer.
 * Added a manual Google OAuth Gmail API transport using only the gmail.send scope.
 * Added an in-product, step-by-step Google Cloud setup guide with the exact site
   callback URL and common OAuth troubleshooting.
 * Added an in-product, step-by-step Brevo SMTP setup guide with sender, domain,
   credential, and troubleshooting instructions.
 * Added a direct Brevo transactional API transport with a user-owned, write-only
   v3 API key, beginner setup guide, direct test, attachments, and exclusive route
   activation.
 * Added a direct SendGrid Mail Send API transport with a user-owned, restricted
   write-only API key, fixed global/EU endpoints, beginner setup guide, direct test,
   attachments, and exclusive route activation.
 * Added a direct Mailgun MIME Messages API transport with a user-owned sending 
   domain, write-only Domain Sending Key, fixed US/EU endpoints, beginner setup 
   guide, direct test, MIME attachments, and exclusive route activation.
 * Added a direct Postmark Email API transport with a user-owned, write-only Server
   API token, fixed endpoint, beginner setup guide, direct test, attachments, provider
   limits, and exclusive route activation.
 * Added a direct Resend Email API transport with a user-owned, write-only Sending
   access API key, fixed endpoint, beginner domain and key setup guide, direct test,
   attachments, provider limits, and exclusive route activation.
 * Added a direct SMTP2GO Email API transport with a user-owned, least-privilege
   write-only API key, fixed global/EU/US/AU endpoint allowlist, beginner sender
   and key setup guide, direct test, attachments, provider limits, and exclusive
   route activation.
 * Added a direct Amazon SES v2 SendEmail transport with user-owned write-only IAM
   credentials, AWS SigV4 signing, a 27-Region endpoint allowlist, least-privilege
   IAM and sandbox guidance, raw MIME attachments, provider limits, and exclusive
   route activation.
 * Added a direct Microsoft Graph sendMail transport with a user-owned Entra Web
   application, PKCE-protected OAuth, delegated Mail.Send only, write-only local
   secrets, raw MIME attachments, beginner setup guidance, and exclusive route activation.
 * Added a direct MailerSend Email API transport with a user-owned least-privilege
   write-only token, verified-domain guide, fixed endpoint, strict acceptance checks,
   supported attachments, provider limits, and exclusive route activation.
 * Added complete bundled English (United States) and Hungarian PO/MO catalogs.
 * Added secret-free SMTP authentication, connection, timeout, TLS, sender, recipient,
   and message-rejection diagnostic categories.

## Meta

 *  Version **1.0.2**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.6 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/techwizard-mail-smtp/)
 * Tags
 * [deliverability](https://test.wordpress.org/plugins/tags/deliverability/)[diagnostics](https://test.wordpress.org/plugins/tags/diagnostics/)
   [email](https://test.wordpress.org/plugins/tags/email/)[mail](https://test.wordpress.org/plugins/tags/mail/)
   [smtp](https://test.wordpress.org/plugins/tags/smtp/)
 *  [Advanced View](https://test.wordpress.org/plugins/techwizard-mail-smtp/advanced/)

## Ratings

No reviews have been submitted yet.

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

[See all reviews](https://wordpress.org/support/plugin/techwizard-mail-smtp/reviews/)

## Contributors

 *   [ techwizardkft ](https://profiles.wordpress.org/techwizardkft/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/techwizard-mail-smtp/)