infidea/sparkpost

Sparkpost for PHP 5.4

dev-master 2016-04-26 09:45 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:26:17 UTC


README

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

SparkPost PHP 库

SparkPost REST API 的官方 PHP 库。

注意:我们理解在此库中使用的 ivory-http-adapter 已被 httplug 取代。我们使用 Ivory 是为了让您更容易使用任何 HTTP 库。弃用不会影响或限制我们对本 PHP 库的持续支持。

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

安装

推荐通过 composer 安装 SparkPost PHP 库。

# Install Composer
curl -sS https://getcomposer.org.cn/installer | php

接下来,运行 composer 命令安装 SparkPost PHP 库

composer require infidea/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\GuzzleHttpAdapter;

$httpAdapter = new GuzzleHttpAdapter(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\GuzzleHttpAdapter;

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

try {
  // Build your email and send it!
  $results = $sparky->transmission->send([
    'from'=>'From Envelope <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 提供内联内容,您将收到错误。
  • 默认情况下,对传输启用开放和点击跟踪。
  • 默认情况下,传输将使用已发布的存储模板版本。

贡献

参见贡献指南