synio/laravel-gmail-service-account-mail-driver

使用 GMail API,无需独立的邮箱凭证,即可通过服务账户从您的 Workspace 组织中的任何用户/邮箱发送邮件

0.2.0 2022-09-04 09:42 UTC

This package is auto-updated.

Last update: 2024-09-17 19:49:29 UTC


README

Latest Version on Packagist GitHub Tests Action Status License Total Downloads

此 Laravel 包通过服务账户添加了 GMail API 的邮件驱动。这使得您可以使用 Google Workspace 中的任何用户/邮箱的实际邮箱发送邮件,无需额外的应用程序密码或其他解决方案。

安装

您可以通过 composer 安装此包

composer require synio/laravel-gmail-service-account-mail-driver

在 Google 上的配置

我最初使用了这篇指南(包含截图)来执行这些操作。它可能对您有所帮助。

在使用此包之前,您需要在 Google Cloud Platform 控制台中配置以下内容

  • 为项目启用 GMail API
  • 创建服务账户用户
  • 为该服务账户用户创建 JSON 类型密钥
  • 下载并保存生成的 JSON 文件
  • 记下 client_id(或从 JSON 文件中获取)

然后您必须在 Google Workspace 管理员中配置“域广泛委派”

  • 转到 安全 -> API 控制 -> 域广泛委派 -> 管理域广泛委派
  • 添加新的 API 客户端
    • 输入您记下的客户端 ID
    • 输入以下 OAuth 范围:https://www.googleapis.com/auth/gmail.send
    • 点击 授权 进行确认

在您的应用程序中配置

下载 JSON 类型密钥文件后,您应将其放置在某个位置,并通知包以下方式之一其路径

  • 在您的 .env 文件中定义 GMAIL_SERVICE_ACCOUNT_GOOGLE_APPLICATION_CREDENTIALS。值应该是相对于您的应用程序根目录的文件名,或绝对路径

  • 或者,您也可以更新您的 services.php 配置文件,并添加类似以下的内容

        'gmail_service_account' => [
            'google_application_credentials' => '/path-to-json-file',
        ],

您还必须在您的 mail.php 配置文件中添加邮件器配置

    'mailers' => [
        // ...Existing mailers here...

        'gmail-service-account' => [
            'transport' => 'gmail-service-account',
        ],
    ],

使用方法

要全局默认启用此邮件驱动,您可以在您的 .env 文件中将 MAIL_MAILER 设置为 gmail-service-account

现在,使用 Laravel 框架(例如 Mail 门面或 Mailables)通过 gmail-service-account 驱动发送的任何邮件都将使用配置的 GMail 服务账户发送。

测试

composer test

变更日志

有关最近更改的更多信息,请参阅变更日志

鸣谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅许可证文件