VR SMTP Mailer

Beschreibung

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.

Screenshots

Installation

  1. Upload the vr-smtp-mailer folder to the /wp-content/plugins/ directory.
  2. Activate the plugin through the „Plugins“ menu in WordPress.
  3. 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.
  4. 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-oauth and /m365-mailer-oauth still work if you registered those URLs earlier.
  5. Use VR SMTP Mailer Test Email to verify sending.
  6. Use VR SMTP Mailer SMTP Tester to verify SMTP connectivity.

FAQ

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/).

What should Plugin URI and Author URI use?

For this plugin, Plugin URI is the WordPress.org directory page: https://wordpress.org/plugins/vr-smtp-mailer/ (slug vr-smtp-mailer, same as the Text Domain and the plugin directory name). Author URI is https://profiles.wordpress.org/vinodkram/. If your approved slug on WordPress.org ever differs, update the Plugin URI in the main PHP file header to match https://wordpress.org/plugins/{your-slug}/. Avoid URLs that could be mistaken for an official vendor or Microsoft property.

What about banners and icons?

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.

Rezensionen

There are no reviews for this plugin.

Mitwirkende & Entwickler

„VR SMTP Mailer“ ist Open-Source-Software. Folgende Menschen haben an diesem Plugin mitgewirkt:

Mitwirkende

Übersetze „VR SMTP Mailer“ in deine Sprache.

Interessiert an der Entwicklung?

Durchstöbere den Code, sieh dir das SVN Repository an oder abonniere das Entwicklungsprotokoll per RSS.

Änderungsprotokoll

1.0.10

  • WordPress.org slug: Public plugin slug and directory name vr-smtp-mailer. Text domain vr-smtp-mailer; PHP prefix VR_SMTP_MAILER_ and option/hook prefix vr_smtp_mailer_; admin screen and asset handles use the vr-smtp-mailer-* pattern.
  • OAuth redirect: Canonical path /vr-smtp-mailer-oauth; /vr-smtp-oauth and /m365-mailer-oauth remain supported for existing app registrations.
  • Migration: On upgrade, copies options and renames custom tables from prior vr_smtp_* keys/names when needed; clears legacy vr_smtp_process_queue cron in favor of vr_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_mail arguments—headers (From, Cc, Bcc, Reply-To, Content-Type, custom headers on SMTP), attachments, and embeds—so immediate sends align much more closely with core wp_mail(). SMTP path runs phpmailer_init and standard wp_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_mail parity, Graph limits, queue storage limits, credential storage disclosure.

1.0.8

  • Requires WordPress 6.2+ for %i identifier placeholders in $wpdb->prepare() (debug log queries). Database calls use prepared statements without raw $sql variables.

1.0.7

  • Text Domain and all __() / esc_html__() calls use vr-smtp to match the WordPress.org plugin directory slug. VR_SMTP_PLUGIN_SLUG is vr-smtp. OAuth redirect URI is /vr-smtp-oauth; /vr-smtp-mailer-oauth and /m365-mailer-oauth remain supported for existing Azure app registrations.

1.0.6

  • Restored Text Domain and VR_SMTP_PLUGIN_SLUG to vr-smtp-mailer. Canonical OAuth redirect path is /vr-smtp-mailer-oauth; /vr-smtp-oauth and /m365-mailer-oauth remain supported for existing app registrations. For WordPress.org, the plugin directory name must match the text domain (use the vr-smtp-mailer folder).

1.0.5

  • Text domain and VR_SMTP_PLUGIN_SLUG aligned with the plugin directory slug vr-smtp (WordPress.org requirement). OAuth redirect URI is /vr-smtp-oauth; /vr-smtp-mailer-oauth and /m365-mailer-oauth remain 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 (was vr-smtp). OAuth redirect URI is /vr-smtp-mailer-oauth; /vr-smtp-oauth and /m365-mailer-oauth remain supported for existing Azure app registrations.

1.0.1

  • Renamed plugin to VR SMTP (directory vr-smtp, text domain vr-smtp). Migration preserves settings and renames database tables from the previous release.
  • OAuth callback accepts the legacy /m365-mailer-oauth path for existing Azure redirect URIs.

1.0.0

  • Initial release.