vemcogroup / laravel-sparkpost-driver
SparkPost 驱动,用于 Laravel 6.x|7.x|8.x|9.x|10.x
Requires
- php: ^8.0.2
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- laravel/framework: ^9.0|^10.0|^11.0
- symfony/mailer: ^6.0|^7.0
README
描述
此软件包允许您继续在 Laravel 中使用 SparkPost 作为邮件驱动程序。
此软件包受到以下项目的启发:[SparkPost Laravel 驱动](https://github.com/clarification/sparkpost-laravel-driver) 并已更新为来自 Laravel 5.8.x 的驱动程序
版本
在下面的表格中找到您要使用的正确版本
安装
您可以通过 composer 安装此软件包
composer require vemcogroup/laravel-sparkpost-driver
如果您正在运行较旧的 Laravel 版本,请确保在安装时包含版本号。例如,对于 Laravel 8.x
composer require vemcogroup/laravel-sparkpost-driver:4.x
该软件包将自动注册其服务提供者。
使用方法
在您可以使用 SparkPost 之前,您需要配置 Laravel 安装。
1. 更新 config/services.php
您需要在 config/services.php
中添加 Sparkpost 服务
'sparkpost' => [ 'secret' => env('SPARKPOST_SECRET') ],
您也可以在那里配置其他选项
SparkPost API 选项
您可以在那里定义特定的 [SparkPost 选项](https://developers.sparkpost.com/api/transmissions/#header-request-body)如 open_tracking
、click_tracking
、transactional
EU GDPR 合规性
您可以通过设置 endpoint
选项来使用 EU 端点进行欧洲 GDPR 合规性,默认情况下将使用默认值。
SparkPost(默认):https://api.sparkpost.com/api/v1
SparkPost EU:https://api.eu.sparkpost.com/api/v1
Guzzle 选项
您可以在 SparkPost 配置部分的 guzzle
中指定 Guzzle 选项。
只需将额外的配置包含在您的 config/services.php
中即可。
'sparkpost' => [ 'secret' => env('SPARKPOST_SECRET'), // optional guzzle specific configuration 'guzzle' => [ 'verify' => true, 'decode_content' => true, ... ], 'options' => [ // configure endpoint, if not default 'endpoint' => env('SPARKPOST_ENDPOINT'), // optional Sparkpost API options go here 'return_path' => 'mail@bounces.domain.com', 'options' => [ 'open_tracking' => false, 'click_tracking' => false, 'transactional' => true, ], ], ],
2. 设置 API 密钥
您还需要将 SparkPost API 密钥添加到您的环境(.env
)文件中
SPARKPOST_SECRET=__Your_key_here__
3. 设置邮件驱动程序
您需要将邮件驱动程序设置为 SparkPost。
您可以通过在 .env
文件中设置环境变量 MAIL_MAILER
来完成此操作
MAIL_MAILER=sparkpost
或者,通过更改 config/mail.php
中的驱动程序来完成
'driver' => env('MAIL_MAILER', 'sparkpost'),
注意:如果您仍然在使用 Laravel 5,则
MAIL_MAILER
将被引用为MAIL_DRIVER
。
4. 更新 config/mail.php
最后,您还需要将 sparkpost
驱动程序添加到 config/mail.php
邮件程序部分。
'mailers' => [ ... 'sparkpost' => [ 'transport' => 'sparkpost' ], ... ],
注意:Laravel 5 已经包含了此配置,因此如果您正在使用 Laravel 5,则不需要执行此操作
辅助函数
删除抑制
sparkpost_delete_supression('test@example.com');
验证单个电子邮件地址
sparkpost_check_email('test@example.com');
邮件子账户
要使用 SparkPost 邮件子账户 发送电子邮件,请在发送之前将所需的子账户 ID 添加到消息标题中
$subaccount_id = 1234; $this->withSymfonyMessage(function ($message) use ($subaccount_id) { // 'this' is a mailable $headers = $message->getHeaders(); $headers->addTextHeader('subaccount_id', $subaccount_id); });