This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

WPO365 | Mail Integration for Office 365 / Outlook


Support ending

Early November 2022, ownership of the Mail Integration for Office 365 / Outlook plugin transferred to WPO365. We are committed to provide (best-effort based) support for this plugin until the end of 2023.

To ensure, however, that we are able to provide you with long time support, we urge you to download and install the WPO365 | MICROSOFT GRAPH MAILER plugin for WordPress instead (and de-activate the Mail Integration for Office 365 / Outlook plugin and remove it from your WordPress website).

If you have already installed and configured the Mail Integration for Office 365 / Outlook plugin, then please make sure to check out our easy-to-understand online migration guide.

Marco van Wieren | Downloads by van Wieren |

About this plugin

Mail Integration for Office 365/Outlook (using OAuth2 and Microsoft’s Graph API rather than SMTP)

This plugin addresses the limitations of current free SMTP plugins, allowing you to send email from WordPress via your Microsoft Account and ensure your email gets delivered reliably, avoiding the spam box! Note, unlike other free SMTP plugins, this one authenticates with the Microsoft Graph API rather than SMTP using OAuth2. This addresses the recent change by Microsoft to disable basic authentication over SMTP (i.e. username and password), preventing other free SMTP plugins from working with Microsoft Accounts. Unfortunately, Microsoft has yet to enable their Graph API to work with the free versions of Outlook, Live, Hotmail etc. The plugin should however work with the paid for personal and business versions of Office 365, Outlook and Microsoft Exchange.

Setup Instructions

You will need to follow the steps outlined on the following website to setup this plugin correctly:


You will need to follow the steps outlined on the following website to setup this plugin correctly:


What does it do?

Put simply, the plugin relays all emails sent from WordPress through your Microsoft email account (or an account of your choosing, for example a shared mailbox). This helps improve the deliverability of your WordPress mail, as Microsoft’s mail servers are set up to avoid being flagged as spam, and should already be configured as the trusted mail server for your domain.

Why another WordPress mail plugin?!

Microsoft has disabled basic authentication (username and password) over the SMTP protocol, requiring more modern and secure methods of authentication such as OAuth 2.0 (the protocol used by this plugin). As such most of the SMTP plugins available do not support Office 365/Outlook, or if they do, the functionality is a paid for feature.

What are the prerequisites?

To start using Mail Integration for Office 365, you need to setup a Microsoft Azure Active Directory account. Azure Active Directory comes in several flavours (paid and free), but it is possible to use the free tier for the purpose of this plugin. You can register for this here (you’re probably already registered if you are using Office 365). You will also need SSL enabled for at least the admin side of your website to ensure the OAuth keys are exchanged over a secure connection.


སྤྱི་ཟླ་དང་པ། 5, 2023
Works like a charm and has a great tutorial on how to set it up. Thank you!
སྤྱི་ཟླ་དྲུག་པ། 17, 2022
I really appreciate author’s contribution. I installed this plugin and it has been working great! Now I have upgraded my WordPress to version 6.0. This plugin is still working as usual. Can’t imagine it is free.
སྤྱི་ཟླ་དྲུག་པ། 16, 2022
Very nice plugin. Highly recommended. Create the app on O365. Take record of the client ID, secret, Tenant ID. Put them all into the plugin. Authorize. Then everything works fine. The plugin does not offer sending test email feature. But you can go into the WordPress user page and manually send email to a user. I successfully sent an email to a test user on the first attempt after configuration.
སྤྱི་ཟླ་དྲུག་པ། 5, 2022
Started looking in to how to do this myself and then I found this plugin. No issues at all and free!
སྤྱི་ཟླ་གཉིས་པ། 20, 2022
I can’t believe this is free! I got it to work with godaddy’s managed wordpress. GoDaddy only issues O365 email accounts now. The instructions are very clear for such a complicated Microsoft process. Thanks to the author. I am so appreciative and relieved that it works.
Read all 26 reviews

Contributors & Developers

“WPO365 | Mail Integration for Office 365 / Outlook” is open source software. The following people have contributed to this plugin.



Ver. 1.9.1 – Fixes an XSS vulnerability reported by patchstack in April 2023.
Ver. 1.9.0 – Ownership of the plugin transferred to WPO365 and tested with WordPress 6.1 / PHP 8.0
Ver. 1.8.6 – Corrected typo of atts filter variable to args
Ver. 1.8.5 – Added code to handle empty to, cc, bc and reply to email addresses, as well as adding an admin error if wp_mail is utilised by another plugins
Ver. 1.8.4 – Added Important Updates! notification to alert users to need to re-authenticate with Office 365
Ver. 1.8.3 – Addressed composer dependency issues by using php-scoper to namespace php libraries. Also addressed empty email array bug.
Ver. 1.8.2 – Modified wp_mail plugable function to address various issues with closing SMTP mail events and forwarding to the Graph API
Ver. 1.7.1 – Fixed undefined variable error for $cc, $bcc and $reply_to in older PHP versions
Ver. 1.7.0 – Fixed WooCommerce and HTML issue
Ver. 1.6.0 – Fixed email content type issue, invalid oauth state issue, and reply-to and send as bug
Ver. 1.5.0 – Fixed additional multisite bug and reply-to bug
Ver. 1.4.0 – Fixed bug where multisite options were unsupported
Ver. 1.3.0 – Changed error and OAuth scope handling.
Ver. 1.2.0 – Added support for sending attachments <3MB in size. Fixed session bug with WordPress API.
Ver. 1.1.0 – Added prefix namespace to composer libraries to avoid conflicts with other plugins using Guzzle whilst also updating the oauth2-azure library at the same time.
Ver. 1.0.4 – Fixed issue with code running outside of settings page, leading to error messages on admin backend. Replaced localhost with if present in redirect URI to prevent potential hostname resolution issues. Updated to handle multiple “to” email addresses (either as a comma separated string, or a one dimensional array)
Ver. 1.0.3 – Fixed issue with send as feature, preventing emails being sent on behalf of others.
Ver. 1.0.2 – Updated readme.txt description and tags.
Ver. 1.0.1 – Fixed minor spelling and display issues.