vemcogroup/laravel-sparkpost-driver

SparkPost 驱动,用于 Laravel 6.x|7.x|8.x|9.x|10.x

5.0.8 2024-05-08 06:19 UTC

README

Latest Version on Packagist Total Downloads

描述

此软件包允许您继续在 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_trackingclick_trackingtransactional

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);
});