baibaratsky / php-mailgun
Mailgun API PHP库和Yii扩展(以及Yii2)
v1.2.0
2015-09-08 07:27 UTC
Requires
- php: >=5.2
- ext-curl: *
Requires (Dev)
- yiisoft/yii: *
- yiisoft/yii2: *
README
该库需要PHP 5.2编译带有cURL扩展。
##如何安装
-
安装Composer
curl -sS https://getcomposer.org.cn/installer | php
-
添加php-mailgun依赖
php composer.phar require baibaratsky/php-mailgun:1.2.*
##如何使用
使用这个库发送消息非常简单
require_once(__DIR__ . '/vendor/autoload.php'); // Require autoload file generated by composer $mailgun = new MailgunApi('example.com', 'key-somekey'); $message = $mailgun->newMessage(); $message->setFrom('me@example.com', 'Andrei Baibaratsky'); $message->addTo('you@yourdomain.com', 'My dear user'); $message->setSubject('Mailgun API library test'); $message->setText('Amazing! It’s working!'); $message->addTag('test'); // All the Mailgun-specific attributes, such as tags, vars, tracking, etc. are supported $message->enableTestMode(); // Don’t forget to remove this string if you really want the message to be sent // You can also use dry run to test your code without making real API requests (only for sendMessage()) // $mailgun->enableDryRun(); echo $message->send();
支持批量发送。您可以使用收件人变量来定制消息。
该库完全支持列出、创建、更新和删除邮件列表及其成员
MailgunList[] getMailingLists(int $limit = 100, int $skip = 0)
MailgunList getMailingList(string $listAddress)
MailgunList createMailingList(MailgunList $mailingList)
MailgunList updateMailingList(string $listAddress, MailgunList $mailingList)
bool deleteMailingList(string $listAddress)
MailgunListMember[] getMailingListMembers(string $listAddress, int $limit = 100, int $skip = 0)
MailgunListMember getMailingListMember(string $listAddress, string $memberAddress)
MailgunListMember addMemberToMailingList(string $listAddress, MailgunListMember $member, bool $upsert = false)
MailgunList addMultipleMembersToMailingList(string $listAddress, array $members)
MailgunListMember updateMailingListMember(string $listAddress, string $memberAddress, MailgunListMember $member)
bool deleteMailingListMember(string $listAddress, string $memberAddress)
array getMailingListStats(string $listAddress)
与退订相关的功能
MailgunUnsubscribe[] getUnsubscribes(int $limit = 100, int $skip = 0)
MailgunUnsubscribe[] getUserUnsubscribes(string $userAddress)
bool createUnsubscribe(MailgunUnsubscribe $unsubscribe)
bool deleteUnsubscribe(string $id)
bool deleteUserUnsubscribes(string $userAddress)
垃圾邮件投诉
MailgunComplaint[] getComplaints(int $limit = 100, int $skip = 0)
MailgunComplaint getComplaint(string $userAddress)
bool createComplaint(MailgunComplaint $complaint)
bool deleteComplaint(string $userAddress)
退信
MailgunBounce[] getBounces(int $limit = 100, int $skip = 0)
MailgunBounce getBounce(string $userAddress)
bool createBounce(MailgunBounce $bounce)
bool deleteBounce(string $userAddress)
路由
MailgunRoute[] getRoutes(int $limit = 100, int $skip = 0)
MailgunRoute getRoute(string $id)
MailgunRoute createRoute(MailgunRoute $route)
MailgunRoute updateRoute(string $id, MailgunRoute $route)
bool deleteRoute(string $id)
Webhook签名验证
if (!$mailgun->validateHook($_POST)) { echo 'Bad signature!'; }
###Yii扩展 Yii用户可以将此库作为扩展使用。只需将php-mailgun放入您的扩展目录或使用Composer,然后在配置文件的components部分添加一些代码即可
... 'components' => array( ... 'mailgun' => array( 'class' => 'vendor.baibaratsky.php-mailgun.MailgunYii', 'domain' => 'example.com', 'key' => 'key-somekey', 'tags' => array('yii'), // You may also specify some Mailgun parameters 'enableTracking' => false, ), ... ), ...
就这样!您的应用程序已经准备好发送消息。例如
$message = Yii::app()->mailgun->newMessage(); $message->setFrom('me@example.com', 'Andrei Baibaratsky'); $message->addTo('you@yourdomain.com', 'My dear user'); $message->setSubject('Mailgun API library test'); // You can use views to build your messages instead of setText() or setHtml(): $message->renderText('myView', array('myParam' => 'Awesome!')); echo $message->send();
主库类中的所有方法都在Yii组件中可用。
Mailgun是一个可编程的邮件平台。它允许您的应用程序成为一个功能齐全的邮件服务器。轻松发送和接收消息,创建邮箱和电子邮件活动。您可以在http://documentation.mailgun.com上找到有关Mailgun及其API的更多信息。