synio / laravel-gmail-service-account-mail-driver
使用 GMail API,无需独立的邮箱凭证,即可通过服务账户从您的 Workspace 组织中的任何用户/邮箱发送邮件
0.2.0
2022-09-04 09:42 UTC
Requires
- php: ^8.0
- google/apiclient: ^2.12
Requires (Dev)
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpunit/phpunit: ^9.5
README
此 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)。有关更多信息,请参阅许可证文件。