Сүрөттөө
VR SMTP Mailer replaces the default WordPress mail transport with SMTP or an OAuth-based mail API, with full support for Microsoft 365 (Office365), Outlook SMTP, and Microsoft Graph API.
It is designed as a complete email solution for WordPress — combining SMTP delivery, OAuth authentication, and API-based sending in a single plugin, without requiring multiple paid extensions.
Why choose this plugin
- Works with Microsoft 365 / Office365 and Outlook SMTP
- Supports both SMTP and OAuth (Graph API) in one plugin
- No need to install multiple plugins for authentication and email delivery
- Designed to work as a full wp_mail replacement
- Includes features commonly available only in paid plugins
- No subscriptions or locked features
Send emails using either SMTP or an OAuth-based mail API (Graph-compatible).
Works with wp_mail() (for immediate sends):
When WordPress sends emails through this plugin, it keeps the same structure as the default wp_mail() function. This includes support for multiple recipients, subject, message body, headers (From, Cc, Bcc, Reply-To, Content-Type), attachments, and inline images where supported.
Standard WordPress filters like wp_mail, wp_mail_from, wp_mail_content_type, and phpmailer_init are applied in SMTP mode, so behavior remains consistent with native WordPress email handling.
Graph API limitations:
When using the Graph API, emails support HTML or plain text content, along with To, Cc, Bcc, and Reply-To fields. Attachments and inline images are supported, but typically limited to around 3 MB per file.
Custom MIME headers are not fully supported, and only standard fields are mapped to the API. More complex email structures may behave differently compared to traditional PHP mail handling.
Email queue (WP-Cron):
Emails can be queued and processed later using WP-Cron. Queued emails store only basic details such as recipient, subject, and message body. Attachments, headers, and inline images are not included in queued jobs.
Automatic OAuth token refresh:
Access tokens are refreshed automatically to ensure uninterrupted email delivery.
Secure OAuth handling:
Token exchange (authorization code to access/refresh tokens) is restricted to users with administrator-level permissions (manage_options). You must be logged in as an admin when completing the OAuth connection.
Testing tools included:
Includes a built-in test email feature and an SMTP connection tester to help verify configuration.
Logging and debugging:
Email activity and debug information are stored in custom database tables for troubleshooting and monitoring.
Security and stored secrets
This plugin stores SMTP passwords, OAuth client secrets, refresh tokens, and access tokens in the WordPress options table, using the same approach as most WordPress settings. These values are not encrypted at rest.
Anyone with access to the database, a full site backup, or an administrator account could potentially view this information. It’s recommended to use strong admin credentials, secure hosting, and limit your app permissions to only what is required.
This plugin is not affiliated with or endorsed by Microsoft. Microsoft, Microsoft 365, Azure, Office, and related names are trademarks of Microsoft Corporation. These names are used only to describe compatibility and technical functionality.
Do not use Microsoft or related logos, branding, or visual assets in your plugin icon, banner, or screenshots on WordPress.org. Use your own branding and neutral visuals.
Third-party services
This plugin connects to external services only when required for email delivery or authentication. It does not send general site traffic or unrelated data to third parties.
Microsoft identity platform (OAuth2) — login.microsoftonline.com
What it is
This is Microsoft’s OAuth2 authentication service (also known as the Microsoft Identity Platform or Entra ID). It is used when you connect your account using OAuth.
What it is used for
Signing in through Microsoft
Exchanging authorization codes for access and refresh tokens
Refreshing expired access tokens
What data is sent and when
During login (via browser): client ID, redirect URI, requested scopes (such as Mail.Send, User.Read), and a state parameter for security
During token exchange (server-side): authorization code, client ID, client secret, redirect URI, grant type, and scopes
Terms
https://www.microsoft.com/servicesagreement
Privacy
https://privacy.microsoft.com/privacystatement
Microsoft Graph API — graph.microsoft.com
What it is
Microsoft’s API for accessing Microsoft 365 services, including sending emails.
What it is used for
Sending emails through the Graph API (/v1.0/me/sendMail).
What data is sent and when
When an email is sent (including test emails), the plugin makes a secure HTTPS request that includes:
An OAuth access token
Email details such as recipients, subject, message body, and optional Cc/Bcc/Reply-To
Attachments or inline images (within API limits)
Terms
https://www.microsoft.com/servicesagreement
Privacy
https://privacy.microsoft.com/privacystatement
Note: Use of Microsoft APIs is also subject to Microsoft’s developer and product terms. Refer to https://www.microsoft.com/legal/
for details.
User-configured SMTP server
What it is
An SMTP server that you configure (for example, your hosting provider, Microsoft 365, Google Workspace, or another email service).
What it is used for
Sending emails using your SMTP credentials.
What data is sent and when
Whenever an email is sent (including test emails), the plugin transmits:
SMTP credentials (if configured)
Email content such as recipients, subject, and message body
This plugin does not control or manage the infrastructure of your SMTP provider.
Terms and privacy
You are responsible for reviewing the terms and privacy policy of your email provider. This plugin does not replace or override those agreements.
Орнотуу
- Upload the
vr-smtp-mailerfolder to the/wp-content/plugins/directory. - Activate the plugin through the “Plugins” menu in WordPress.
- Go to VR SMTP Mailer Settings to configure:
- Choose provider (SMTP or Graph OAuth mail).
- Enter SMTP host, username, password, and port, or tenant ID, client ID, and client secret for OAuth.
- Set From Email and From Name.
- Enable Debug Mode if desired.
- For Graph OAuth mail:
- Save settings, then click Sign in to connect and complete the OAuth consent.
- Add the Authorization Redirect URI shown on the settings page to your cloud identity app registration (for example
https://yoursite.com/vr-smtp-mailer-oauth). Legacy paths/vr-smtp-oauthand/m365-mailer-oauthstill work if you registered those URLs earlier.
- Use VR SMTP Mailer Test Email to verify sending.
- Use VR SMTP Mailer SMTP Tester to verify SMTP connectivity.
FAQ.KG
-
Does this plugin replace the default `wp_mail` behavior?
-
Yes. Emails are queued and delivered via the configured provider (SMTP or Graph OAuth mail) using WP-Cron.
-
Does it require WP-Cron to be enabled?
-
Yes. The queue worker runs on a custom five-minute cron schedule.
-
Why does the readme list “vinodkram” under Contributors?
-
WordPress.org uses contributor profile usernames (slugs), not display names. List your WordPress.org username exactly as it appears in your profile URL (
https://profiles.wordpress.org/username/). -
For this plugin, Plugin URI is the WordPress.org directory page:
https://wordpress.org/plugins/vr-smtp-mailer/(slugvr-smtp-mailer, same as the Text Domain and the plugin directory name). Author URI ishttps://profiles.wordpress.org/vinodkram/. If your approved slug on WordPress.org ever differs, update the Plugin URI in the main PHP file header to matchhttps://wordpress.org/plugins/{your-slug}/. Avoid URLs that could be mistaken for an official vendor or Microsoft property. -
Do not use Microsoft, Windows, Office, Azure, or other vendors’ logos, trademarks, or trade dress in your WordPress.org banner, icon, or screenshots. Use your own branding and neutral artwork.
Сын-пикирлер
There are no reviews for this plugin.
Contributors & Developers
“VR SMTP Mailer” is open source software. The following people have contributed to this plugin.
МүчөлөрүTranslate “VR SMTP Mailer” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Өзгөртүүлөр
1.0.10
- WordPress.org slug: Public plugin slug and directory name
vr-smtp-mailer. Text domainvr-smtp-mailer; PHP prefixVR_SMTP_MAILER_and option/hook prefixvr_smtp_mailer_; admin screen and asset handles use thevr-smtp-mailer-*pattern. - OAuth redirect: Canonical path
/vr-smtp-mailer-oauth;/vr-smtp-oauthand/m365-mailer-oauthremain supported for existing app registrations. - Migration: On upgrade, copies options and renames custom tables from prior
vr_smtp_*keys/names when needed; clears legacyvr_smtp_process_queuecron in favor ofvr_smtp_mailer_process_queue. - Bootstrap file: Main plugin file is
vr-smtp-mailer.php.
1.0.9
- wp_mail-style delivery: Mailers now receive full
pre_wp_mailarguments—headers (From, Cc, Bcc, Reply-To, Content-Type, custom headers on SMTP), attachments, and embeds—so immediate sends align much more closely with corewp_mail(). SMTP path runsphpmailer_initand standardwp_mail_*filters. - Graph sendMail: Maps To/Cc/Bcc/Reply-To, HTML vs plain text, attachments, and inline embeds (per-file size limit for base64 payload); documents Graph vs SMTP differences in the readme.
- OAuth: Admin-only (
manage_options) token exchange on both the admin callback and the pretty redirect URL; non-admins are redirected back to settings with an error. - Readme: Expanded Description—
wp_mailparity, Graph limits, queue storage limits, credential storage disclosure.
1.0.8
- Requires WordPress 6.2+ for
%iidentifier placeholders in$wpdb->prepare()(debug log queries). Database calls use prepared statements without raw$sqlvariables.
1.0.7
- Text Domain and all
__()/esc_html__()calls usevr-smtpto match the WordPress.org plugin directory slug.VR_SMTP_PLUGIN_SLUGisvr-smtp. OAuth redirect URI is/vr-smtp-oauth;/vr-smtp-mailer-oauthand/m365-mailer-oauthremain supported for existing Azure app registrations.
1.0.6
- Restored Text Domain and
VR_SMTP_PLUGIN_SLUGtovr-smtp-mailer. Canonical OAuth redirect path is/vr-smtp-mailer-oauth;/vr-smtp-oauthand/m365-mailer-oauthremain supported for existing app registrations. For WordPress.org, the plugin directory name must match the text domain (use thevr-smtp-mailerfolder).
1.0.5
- Text domain and
VR_SMTP_PLUGIN_SLUGaligned with the plugin directory slugvr-smtp(WordPress.org requirement). OAuth redirect URI is/vr-smtp-oauth;/vr-smtp-mailer-oauthand/m365-mailer-oauthremain supported for existing app registrations.
1.0.4
- Readme: documented third-party and external services (Microsoft identity OAuth, Microsoft Graph, user-configured SMTP); what data is sent and when; links to terms and privacy policies.
1.0.3
- Readme: contributor field uses WordPress.org username; Plugin URI / Author URI point to WordPress.org; tags and marketing copy reduced unnecessary trademark use; clearer disclaimer and asset guidance.
- Admin: “Authorize Microsoft” replaced with neutral “Sign in to connect”; Graph section labels softened while keeping technical behavior unchanged.
1.0.2
- Text domain
vr-smtp-mailer(matches plugin slug). All__(),_e(),esc_html__(), and related calls updated;load_plugin_textdomain()loads translations from/languages. - Plugin directory slug is
vr-smtp-mailer(wasvr-smtp). OAuth redirect URI is/vr-smtp-mailer-oauth;/vr-smtp-oauthand/m365-mailer-oauthremain supported for existing Azure app registrations.
1.0.1
- Renamed plugin to VR SMTP (directory
vr-smtp, text domainvr-smtp). Migration preserves settings and renames database tables from the previous release. - OAuth callback accepts the legacy
/m365-mailer-oauthpath for existing Azure redirect URIs.
1.0.0
- Initial release.









