wapacro / laravel-msgraph-mail
Laravel mail driver to send emails using Microsoft Graph, supporting both personal accounts as well as work/school accounts (365/Exchange)
Installs: 7 179
Dependents: 0
Suggesters: 0
Security: 0
Stars: 13
Watchers: 2
Forks: 21
Open Issues: 7
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- illuminate/mail: ^8.0
- illuminate/support: ^8.0
Requires (Dev)
- mockery/mockery: ^1.3
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.1
This package is auto-updated.
Last update: 2024-11-08 21:26:29 UTC
README
This package makes it easy to send emails from your personal, work or school account using Microsoft's Graph API, allowing you to benefit from HTTP instead of SMTP with Laravel.
Tested with different company (Microsoft 365 Business) accounts
Installation
Install the package using composer:
composer require wapacro/laravel-msgraph-mail
Add the configuration to your mail.php config file:
'mailers' => [ 'microsoft-graph' => [ 'transport' => 'microsoft-graph', 'tenant' => env('MAIL_MSGRAPH_TENANT', 'common'), 'client' => env('MAIL_MSGRAPH_CLIENT'), 'secret' => env('MAIL_MSGRAPH_SECRET') ] // ... ]
Valid values for tenant
are your tenant identifier (work & school accounts) or common
for personal accounts.
Note: This package relies on Laravel's Cache interface for caching access tokens. Make sure to configure it properly, too!
Version
The latest version is only compatible with Laravel 8.x. Use an older version if you didn't upgrade to Laravel 8 yet:
Getting the credentials
To get the necessary client ID and secret you'll need to register your application and grant it the required permissions. Head over to the Azure Portal to do so (you don't need to be an Azure user).
Make sure to grant the Mail.Send permission and to generate a secret afterwards (may be hidden during app registration).
Work & School accounts: Granting your app the Mail.Send permission allows you by default to send emails with every valid email address within your company/school. Use an Exchange Online Application Access Policy to restrict which email addresses are valid senders for your application.