syntaxera / cakephp-sparkpost-plugin
用于通过SparkPost的REST API发送邮件的CakePHP插件
Requires
- cakephp/cakephp: ~3.0
- sparkpost/php-sparkpost: ~1.0
Requires (Dev)
- phpunit/phpunit: ~5.3
- satooshi/php-coveralls: ~1.0
README
用于通过SparkPost的REST API发送邮件的CakePHP插件
简介
SparkPost是什么?
SparkPost 是一个基于Web的邮件投递服务,允许Web应用程序开发人员通过灵活可靠的REST API发送事务性邮件。您可能听说过其他邮件投递服务,如 Mandrill 和 SendGrid。
遗憾的是,这些服务要么不是免费的,要么曾经是免费的,但现在已经不再免费。幸运的是,如果您每月发送的邮件少于15,000封(大多数新兴Web应用程序都是这样),通过SparkPost发送邮件是免费的。
Syntax Era开发了此插件,因为我们的大部分应用程序都使用CakePHP,并且我们注意到还没有为SparkPost提供任何CakePHP插件。我们希望这个插件对整个CakePHP社区,尤其是那些从Mandrill或其他付费邮件服务迁移过来但仍未准备好/能够支付他们发送的少量事务性邮件的用户来说是有用的。
事务性邮件是什么?
事务性邮件是发送给用户以通知某事或有时提示用户完成某个操作的邮件。例如,密码重置邮件、账户验证邮件以及“你收到了一条消息”的邮件都是事务性邮件。
有关更多信息,请参阅 什么是事务性邮件?。
CakePHP是什么?
CakePHP是一个使用MVC(模型/视图/控制器)架构的快速开发PHP Web应用程序框架。它首次于2005年8月发布,现在已升级到3.0版本,比以往任何时候都更加强大!CakePHP的一个优点是它支持通过插件扩展其功能,而此插件就是其中之一。
有关CakePHP的更多信息,请访问他们的网站 CakePHP.org。
安装
命令行安装
使用Composer是安装此插件的首选方法,因为它允许您轻松下载插件及其依赖项,并保持它们最新,并利用Composer的出色类自动加载器。
要使用Composer安装插件
- 打开终端并将
cd到您的CakePHP应用程序的根目录。 - 运行
composer require syntaxera/cakephp-sparkpost-plugin以下载插件及其依赖项。 - 如果您想修改插件版本,可以打开
composer.json进行编辑。
手动安装
您还可以通过点击上面的“下载ZIP”按钮手动安装插件,并将其解压缩到您的CakePHP应用程序的 plugins/ 目录,但如果是这样,您将必须手动执行更新。
如果您熟悉git,您还可以使用 git clone 将存储库直接下载到您的硬盘驱动器。这允许您保持插件开发的最新状态,但请注意,它被称为“前沿”是有原因的。
设置
要将插件添加到您的应用程序,请在应用程序的引导文件中激活插件
Plugin::load('SparkPost');
然后在应用程序的配置文件中添加以下内容
'SparkPost' => [
'Api' => [
'key' => 'YOUR_SPARKPOST_API_KEY'
]
]
使用方法
因为这个插件作为传输实现,所以您可以从 CakePHP 应用程序的任何一层使用它。
从控制器
// Configure email transport
Email::configTransport('sparkpost', [
'className' => 'SparkPost.SparkPost',
'apiKey' => Configure::read('SparkPost.Api.key')
]);
// Create email message
$email = new Email();
$email->transport('sparkpost');
$email->from(['FROM_ADDRESS' => 'FROM_NAME']);
$email->to(['TO_ADDRESS' => 'TO_NAME']);
$email->subject('SUBJECT');
$email->send('BODY');
从 Cake CLI
与从控制器发送的过程完全相同,但是您还应该使用 $email->domain('www.example.com'); 指定主机名,因为 CLI 环境没有主机名。
测试
您可以使用 CakePHP 内置的 PHPUnit 支持来测试插件,但这假设两点:
- 您已全局安装 PHPUnit,并且可以从命令行使用
phpunit命令。 - 您没有删除与新的 CakePHP 3.x 应用程序一起创建的
phpunit.xml.dist。
要测试插件,首先将其测试套件添加到应用程序的 PHPUnit 配置文件中。
<?xml version="1.0" encoding="UTF-8"?>
<phpunit ...>
...
<testsuites>
<testsuite name="App Test Suite">
<directory>./tests/TestCase</directory>
</testsuite>
<!-- Add these lines -->
<testsuite name="SparkPost Plugin Test Suite">
<directory>./vendor/syntaxera/cakephp-sparkpost-plugin/tests/TestCase</directory>
</testsuite>
</testsuites>
...
</phpunit>
接下来,进入应用程序的根目录并运行 phpunit。
如果不起作用,请运行 composer dump-autoload 并再次尝试。
贡献
错误报告
如果您在插件中发现了错误,或者知道您希望添加的功能,请随意在 问题页面 上创建一个问题。 在报告错误时,尽可能详细。包括错误发生时您正在做什么,可能是什么原因导致了错误,以及如果可能的话,如何重现它。截图也很好。
为了表示礼貌,请在创建新问题之前使用搜索工具验证是否已报告了该问题。请随意对开放的错误/功能请求添加您的评论/+1,但重复的问题需要花费时间进行修剪,并会挤占新的、重要的问题。
拉取请求
发现了一个你认为可以修复的错误?那就去做吧!克隆受影响的分支,修复错误,然后创建一个拉取请求,我们会尽快进行审查和接受。但是,在提交拉取请求之前,请确保您的代码遵循我们的 代码风格指南。不遵循风格指南的 PR 将被拒绝!(当然,是礼貌地)
关于分支的说明...
在 Syntax Era,我们相信某些软件应该是免费的,而这个插件肯定属于这一类。这就是为什么我们使这个存储库公开,并允许社区进行贡献。如果您想将此项目引向不同的方向,那么您应该克隆存储库并进行开发! 然而,由于我们没有控制分支中的源代码,因此我们无法为该软件提供支持。 使用它请自担风险。
法律
许可
根据 MIT 许可证(MIT)许可。有关详细信息,请参阅 LICENSE.md。
版权
版权(c)2016 Syntax Era 开发工作室。保留所有权利。
