innoge / laravel-msgraph-mail
Laravel Mail 驱动程序,用于 Microsoft Office 365 的 MSGraph API
Requires
- php: ^8.1
- illuminate/contracts: ^9.38|^10.0|^11.0
- spatie/laravel-package-tools: ^1.14.0
- symfony/mailer: ^6.0|^7.0
Requires (Dev)
- guzzlehttp/guzzle: ^7.5
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0|^7.0|^8.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0|^8.0|^9.0
- pestphp/pest: ^1.21|^2.0
- pestphp/pest-plugin-laravel: ^1.21|^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
README
此包为 Laravel 提供了 Microsoft Graph 邮件驱动程序。当您不想使用已弃用且不安全的 Basic Auth SMTP 驱动程序与 Microsoft Office 365 通信时,这是一个替代方案。
安装
您可以通过 composer 安装此包
composer require innoge/laravel-msgraph-mail
配置
注册 Azure 应用
Microsoft Azure AD 配置
我已经写了一篇详细的博客文章,介绍了如何配置您的 Microsoft Azure AD 租户。 使用 Laravel 和 Microsoft Office 365 安全发送邮件
我想自己解决
您需要在 Azure AD 租户中注册一个 Azure 应用。您可以通过遵循Microsoft Graph 文档中的步骤来完成此操作。
创建应用后,您需要向应用添加以下权限:Mail.Send(应用程序权限),您可以在“Microsoft Graph”部分找到它。
现在您需要为应用授予管理员同意。您可以通过遵循Microsoft Graph 文档中的步骤来完成此操作。
配置您的 Laravel 应用
首先,您需要将一个新条目添加到 config/mail.php
配置文件中的邮件驱动程序数组
'microsoft-graph' => [ 'transport' => 'microsoft-graph', 'client_id' => env('MICROSOFT_GRAPH_CLIENT_ID'), 'client_secret' => env('MICROSOFT_GRAPH_CLIENT_SECRET'), 'tenant_id' => env('MICROSOFT_GRAPH_TENANT_ID'), 'from' => [ 'address' => env('MAIL_FROM_ADDRESS'), 'name' => env('MAIL_FROM_NAME'), ], 'save_to_sent_items' => env('MAIL_SAVE_TO_SENT_ITEMS', false), ],
对于 client_id
、client_secret
和 tenant_id
,您需要使用上一步骤中创建的 Azure 应用中的值。
Microsoft Graph 中的 save_to_sent_items
选项指的是一个参数,用于确定是否应将发送的电子邮件保存到发送者的邮箱中的“已发送邮件”文件夹。当此选项设置为 true 时,电子邮件将自动保存到“已发送邮件”文件夹,提供通信记录。相反,当它设置为 false 时,电子邮件将不会保存到“已发送邮件”文件夹。
默认情况下,save_to_sent_items
选项设置为 false,这意味着通过 Microsoft Graph 发送的电子邮件不会保存在发送者的“已发送邮件”文件夹中,除非明确指定其他方式。此行为在可能需要更多控制哪些电子邮件作为已发送邮件保存的场景中很有用,例如减少杂乱或确保机密性。
现在,您可以通过设置环境变量将默认邮件驱动程序切换到新的 microsoft-graph
驱动程序
MAIL_MAILER=microsoft-graph
测试
composer test
更新日志
有关最近更改的更多信息,请参阅 更新日志
贡献
有关详细信息,请参阅 贡献指南
安全漏洞
有关如何报告安全漏洞的信息,请参阅 我们的安全策略
鸣谢
许可协议
MIT 许可协议(MIT)。有关更多信息,请参阅 许可文件