Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Symfony Mailer Office365

153 sites No security coverage
View on drupal.org

This module provides integration for sending emails through Office365 using OAuth authentication. It allows Drupal sites to continue sending emails via Office365 after basic authentication via SMTP is deprecated. The module handles OAuth token refreshing automatically via Drupal cron or a Drush command.

Symfony Mailer Office365 Integration

Why?

Office365 stops support for sending via SMTP with Basic Auth information (Username & Password).

A modern OAuth Flow is required. Since there is no feasable Drupal solution as of writing, this module provides a gap until there is an implementation provided by Symfony itself or a different solution.

How-To

1. Register your app with Microsoft Entra and provide Redirect URL: `https://example.com/office365/oauth/callback`
2. Configure with given credentials
`admin/config/system/mailer/office365`
3. Add "Office 365 - OAuth" Transport to your mailing policy
4. Login to save OAuth State with Drupal (Link available here: `admin/config/system/mailer/office365`)

Refreshing the token state

Using OAuth requires you to keep refreshing the access token with the given refresh token once it expired.
This module provides two ways to do that.

a) Drupal Cron

Refreshing (if necessary) happens when the Drupal Cron is run.
In that case make sure it gets run at least every 12 hours to be on the safe side.

See Token Lifetime: https://learn.microsoft.com/en-us/entra/identity-platform/refresh-tokens...

b) Drush Command

If you want to refresh the token (if necessary) in an own interval separate to the cron you can run the following drush command:

drush office365:refresh

Please choose an appropriate interval for this method as well.

Troubleshooting

You should check the status page `admin/config/system/mailer/office365` and check the system logs (watchdog f.e) for any error messages.

Credits

This was insipired by the following gists

Even though a lot has been rewritten, this inspired a lot how this concept was implemented. Thanks!

Please also see https://github.com/symfony/symfony/pull/52585 for development with symfony, which would make this module probably obsolete.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
6
Tracked since
Apr 2025
Latest release
1 week ago
Releases (12 mo)
3
Maintenance
Active

Release Timeline

Releases

Version Type Core Release date
1.0.0-rc1 Pre-release 10–11 Aug 18, 2026
1.0.0-alpha5 Pre-release 10–11 Jul 10, 2026
1.0.0-alpha4 Pre-release 10–11 Sep 17, 2025
1.0.0-alpha3 Pre-release 10–11 Apr 30, 2025
1.0.0-alpha2 Pre-release 10–11 Apr 11, 2025
1.0.0-alpha1 Pre-release 10–11 Apr 11, 2025