Drupal is a registered trademark of Dries Buytaert
drupal 11.4.1 Update released for Drupal core (11.4.1)! drupal 11.4.0 Update released for Drupal core (11.4.0)! drupal 10.6.12 Update released for Drupal core (10.6.12)! drupal 11.3.13 Update released for Drupal core (11.3.13)! drupal 10.6.11 Update released for Drupal core (10.6.11)! drupal 11.3.12 Update released for Drupal core (11.3.12)! drupal 11.2.14 Update released for Drupal core (11.2.14)! drupal 10.5.12 Update released for Drupal core (10.5.12)! cms 2.1.3 Update released for Drupal core (2.1.3)! drupal 10.5.11 Update released for Drupal core (10.5.11)! drupal 11.3.11 Update released for Drupal core (11.3.11)! drupal 11.2.13 Update released for Drupal core (11.2.13)! drupal 10.6.10 Update released for Drupal core (10.6.10)! cms 2.1.2 Update released for Drupal core (2.1.2)! drupal 11.1.10 Update released for Drupal core (11.1.10)! drupal 10.5.10 Update released for Drupal core (10.5.10)! drupal 10.4.10 Update released for Drupal core (10.4.10)! drupal 11.2.12 Update released for Drupal core (11.2.12)! drupal 11.3.10 Update released for Drupal core (11.3.10)! drupal 10.6.9 Update released for Drupal core (10.6.9)!

The Symfony Mailer MS Graph module adds a Microsoft Graph API mail transport for the Symfony Mailer module using delegated permissions. Emails are sent as a specific Microsoft 365 mailbox that authorizes this app once via a Microsoft OAuth2 sign-in, rather than as a generic service account — unlike app-only transports such as Symfony Mailer GraphAPI. A refresh token keeps the delegated authorization alive, renewed automatically via cron.

Configuration

  1. In Microsoft Entra: grant the app registration the Delegated permission Mail.Send, add the offline_access scope (required to receive a refresh token).
  2. In Drupal: go to Administration » Configuration » System » MS Graph Delegated Mailer (/admin/config/system/symfony-mailer-ms-graph).
  3. Enter the delegated mailbox's email address, Client ID, and Tenant ID; select the Key entity holding the client secret. Save.
  4. Copy the Redirect URI shown on the form into the Entra app registration's Authentication settings.
  5. Click "Authorize with Microsoft" and sign in as the mailbox that should send mail.
  6. Go back to Mailer Transport » Add transport, choose DSN, label it (e.g. "Microsoft Graph (Delegated)"), and enter:
    microsoftgraph+delegated://default
  7. Set this as the active transport.
  8. The refresh token renews automatically via cron (interval configurable on the settings form); use "Refresh access token now" to renew manually, or re-authorize if Microsoft rejects the stored token.

Similar modules

Unlike the modules above, this module additionally supports delegated permissions (OAuth2 authorization code + refresh token), allowing mail to be sent as a specific, real Microsoft 365 mailbox.

Activity

Total releases
2
First release
Jul 2026
Latest release
14 hours ago
Release cadence
0 days
Stability
0% stable

Releases

Version Type Release date
1.0.0-alpha1 Pre-release Jul 8, 2026
1.x-dev Dev Jul 8, 2026