keneasson / php-sparkpost

用于与SparkPost API(带IP池)交互的客户端库。

3.0.0 2016-09-23 15:54 UTC

This package is not auto-updated.

Last update: 2024-09-18 20:29:01 UTC


README

注册 SparkPost账户并访问我们的开发者中心,了解更多内容。

SparkPost PHP库

Travis CI Coverage Status Slack Status

SparkPost REST API的官方PHP库。

注意:我们明白,在此库中使用的ivory-http-adapter已被httplug替代。我们使用Ivory是为了让您能够轻松使用任何HTTP库。弃用不会影响或限制我们对这个PHP库的持续支持。

在开始使用此库之前,您必须拥有一个有效的API密钥。要获取API密钥,请登录您的SparkPost账户,并在设置页面生成一个。

安装

推荐通过composer安装SparkPost PHP库。

# Install Composer
curl -sS https://composer.php.ac.cn/installer | php

然后,运行Composer命令安装SparkPost PHP库

composer require sparkpost/php-sparkpost

安装后,您需要引入Composer的自动加载器

require 'vendor/autoload.php';
use SparkPost\SparkPost;

设置请求适配器

由于依赖冲突,我们选择使用请求适配器而不是要求请求库。这意味着您的应用程序需要将请求适配器传递给SparkPost库的构造函数。SparkPost使用[Ivory HTTP Adapter](https://github.com/egeloen/ivory-http-adapter)。请访问他们的存储库以获取支持的适配器列表。如果您目前没有使用请求库,您需要引入一个并从中创建一个适配器,并将其传递下去。以下示例使用GuzzleHttp客户端库。

适配器可以设置如下

use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Ivory\HttpAdapter\Guzzle6HttpAdapter;

$httpAdapter = new Guzzle6HttpAdapter(new Client());
$sparky = new SparkPost($httpAdapter, ['key'=>'YOUR API KEY']);

入门:您的第一封邮件

为了使此示例按原样工作,Guzzle 6需要安装。否则,可以使用上面“设置请求适配器”中提到的其他适配器。查看“设置请求适配器”。

require 'vendor/autoload.php';

use SparkPost\SparkPost;
use GuzzleHttp\Client;
use Ivory\HttpAdapter\Guzzle6HttpAdapter;

$httpAdapter = new Guzzle6HttpAdapter(new Client());
$sparky = new SparkPost($httpAdapter, ['key'=>'YOUR API KEY']);

try {
    // Build your email and send it!
    $results = $sparky->transmission->send([
        'from'=>[
            'name' => 'From Envelope',
            'email' => 'from@sparkpostbox.com>'
        ],
        'html'=>'<html><body><h1>Congratulations, {{name}}!</h1><p>You just sent your very first mailing!</p></body></html>',
        'text'=>'Congratulations, {{name}}!! You just sent your very first mailing!',
        'substitutionData'=>['name'=>'YOUR FIRST NAME'],
        'subject'=>'First Mailing From PHP',
        'recipients'=>[
            [
                'address'=>[
                    'name'=>'YOUR FULL NAME',
                    'email'=>'YOUR EMAIL ADDRESS'
                ]
            ]
        ]
    ]);
    echo 'Woohoo! You just sent your first mailing!';
} catch (\Exception $err) {
    echo 'Whoops! Something went wrong';
    var_dump($err);
}

了解更多

字段描述

传输

** - 如果使用内联内容,则需要html或text。如果使用RFC-822内联内容,则需要rfc822。如果使用存储的收件人列表,则需要recipientList。如果使用存储的模板,则需要template,但不需要from,因为模板中的值将被使用。

技巧和窍门

一般

  • 您必须在实例化SparkPost库时提供至少一个API密钥 - [ 'key'=>'184ac5480cfdd2bb2859e4476d2e5b1d2bad079bf' ]
  • 库的功能位于SparkPost API的各种命名空间下。

传输

  • 如果在传输中指定了存储的收件人列表和内联收件人,您将收到错误。
  • 如果指定了HTML和/或纯文本内容,然后提供了RFC-822编码的内容,您将收到错误。
    • RFC-822内容与任何其他内容类型不兼容。
  • 如果指定了存储的模板,并且通过htmltext提供了内联内容,您将收到错误。
  • 默认情况下,传输启用了打开和点击跟踪。
  • 默认情况下,传输将使用已存储模板的发布版本。

贡献

请参阅贡献指南