innoge/laravel-msgraph-mail

Laravel Mail 驱动程序,用于 Microsoft Office 365 的 MSGraph API

1.3.0 2024-04-22 15:25 UTC

This package is auto-updated.

Last update: 2024-09-26 15:04:12 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包为 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_idclient_secrettenant_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)。有关更多信息,请参阅 许可文件