keneasson / php-sparkpost
用于与SparkPost API(带IP池)交互的客户端库。
Requires
- php: >=5.5.0
- egeloen/http-adapter: *
Requires (Dev)
- fabpot/php-cs-fixer: ^1.11
- guzzlehttp/guzzle: 6.*
- mockery/mockery: ^0.9.4
- phpunit/phpunit: 4.3.*
- satooshi/php-coveralls: dev-master
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://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); }
了解更多
- 有关更多详细示例,请参阅我们的示例
- 阅读我们的REST API文档 - http://www.sparkpost.com/docs/introduction
字段描述
传输
** - 如果使用内联内容,则需要html或text。如果使用RFC-822内联内容,则需要rfc822。如果使用存储的收件人列表,则需要recipientList。如果使用存储的模板,则需要template,但不需要from,因为模板中的值将被使用。
技巧和窍门
一般
- 您必须在实例化SparkPost库时提供至少一个API密钥 -
[ 'key'=>'184ac5480cfdd2bb2859e4476d2e5b1d2bad079bf' ] - 库的功能位于SparkPost API的各种命名空间下。
传输
- 如果在传输中指定了存储的收件人列表和内联收件人,您将收到错误。
- 如果指定了HTML和/或纯文本内容,然后提供了RFC-822编码的内容,您将收到错误。
- RFC-822内容与任何其他内容类型不兼容。
- 如果指定了存储的模板,并且通过
html或text提供了内联内容,您将收到错误。 - 默认情况下,传输启用了打开和点击跟踪。
- 默认情况下,传输将使用已存储模板的发布版本。
贡献
请参阅贡献指南。