sboo / laravel5-mailjet
Laravel 5 的 Mailjet 驱动程序
此包的规范存储库似乎已不存在,因此该包已被冻结。
Requires
- php: >=5.4.0
- guzzlehttp/guzzle: 5.*|6.*
- illuminate/support: 5.1.*|5.2.*|5.3.*
This package is not auto-updated.
Last update: 2024-02-17 13:55:58 UTC
README
不幸的是,这个库暂时不会再更新了,因为我没有足够的时间再继续工作。
Laravel 5 Mailjet 集成
- Laravel: 5
- 作者: Ramon Ackermann
- 作者主页: https://github.com/sboo
此包扩展了 Laravel 5 的 MailService,以实现基于 Mailjet API v3 的 Mailjet 集成。
安装
首先,您需要将此包包含在您的 composer.json 文件中。
"require": { "sboo/laravel5-mailjet" : "1.0.*" }
现在,您将通过 composer 更新或安装。
composer update
接下来,打开 app/config/app.php,将 MailServiceProvider 替换为
'Sboo\Laravel5Mailjet\MailjetServiceProvider'
注意 替换默认的服务提供者非常重要,以避免冲突。您不会丢失任何关于邮件驱动程序的原有功能,它们仍然可用。
配置很简单:在您的 config/services.php 中添加以下条目
'mailjet' => [ 'key' => 'APIKEY', 'secret' => 'APISECRET', ],
并将值替换为您的相应 API 密钥和密钥。
接下来,将您的 config/mail.php 或 .env 文件中的邮件驱动程序更改为 'mailjet',并确保您配置了有效的授权发件人地址。
这样就完成了。有关用法,请参阅Laravel 5 邮件文档
##API 访问##
我还集成了对 Mailjet API 的直接访问,基于他们的示例代码。
要安装,请将别名追加到 config/app.php 中
'Mailjet' => 'Sboo\Laravel5Mailjet\Facades\Mailjet',
要在代码中使用 API,请添加
use Mailjet;
示例
基于https://github.com/mailjet/mailjet-apiv3-php-simple/blob/master/README.md
SendAPI
- 发送电子邮件的函数
function sendEmail() { $params = [ "method" => "POST", "from" => "ms.mailjet@example.com", "to" => "mr.mailjet@example.com", "subject" => "Hello World!", "text" => "Greetings from Mailjet." ]; $result = Mailjet::sendEmail($params); if (Mailjet::getResponseCode() == 200) echo "success - email sent"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 发送带附件的电子邮件的函数(您的计算机上的绝对路径)
function sendEmailWithAttachments() { $params = [ "method" => "POST", "from" => "ms.mailjet@example.com", "to" => "mr.mailjet@example.com", "subject" => "Hello World!", "text" => "Greetings from Mailjet.", "attachment" => ["@/path/to/first/file.txt", "@/path/to/second/file.txt"] ]; $result = Mailjet::sendEmail($params); if (Mailjet::getResponseCode() == 200) echo "success - email sent"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 发送带内联附件的电子邮件的函数(您的计算机上的绝对路径)
function sendEmailWithInlineAttachments() { $params = [ "method" => "POST", "from" => "ms.mailjet@example.com", "to" => "mr.mailjet@example.com", "subject" => "Hello World!", "html" => "<html>Greetings from Mailjet <img src=\"cid:photo1.jpg\"><img src=\"cid:photo2.jpg\"></html>", "inlineattachment" => ["@/path/to/photo1.jpg", "@/path/to/photo2.jpg"] ]; $result = Mailjet::sendEmail($params); if (Mailjet::getResponseCode() == 200) echo "success - email sent"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
账户设置
- 获取您的配置文件信息的函数
function viewProfileInfo() { $result = Mailjet::myprofile(); if (Mailjet::getResponseCode() == 200) echo "success - got profile information"; else echo "error - ".Mailjet::getResponseCode(); }
- 更新配置文件字段
AddressCity
的函数
function updateProfileInfo() { $params = [ "method" => "PUT", "AddressCity" => "New York" ]; $result = Mailjet::myprofile($params); if (Mailjet::getResponseCode() == 200) echo "success - field AddressCity changed"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
联系人列表
- 打印您的联系人列表的函数
function listContacts() { $result = Mailjet::contact(); if (Mailjet::getResponseCode() == 200) echo "success - listed contacts"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 使用数组更新 ID 为
$id
的联系人数据资源的函数
function updateContactData($id) { $data = [ ['Name' => 'lastname', 'Value' => 'Jet'], ['Name' => 'firstname', 'Value' => 'Mail'] ]; $params = [ 'ID' => $id, 'Data' => $data, 'method' => 'PUT' ]; $result = Mailjet::contactdata($params); if (Mailjet::getResponseCode() == 200) echo "success - data changed"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 创建名为
$Lname
的列表的函数
function createList($Lname) { $params = [ "method" => "POST", "Name" => $Lname ]; $result = Mailjet::contactslist($params); if (Mailjet::getResponseCode() == 201) echo "success - created list ".$Lname; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 获取 ID 为
$listID
的列表的函数
function getList($listID) { $params = [ "method" => "VIEW", "ID" => $listID ]; $result = Mailjet::contactslist($params); if (Mailjet::getResponseCode() == 200) echo "success - got list ".$listID; else echo "error - ".Mailjet::getResponseCode(); return $result; }
注意:您可以使用资源的唯一字段而不是 ID,例如,在示例中,您可以在 params
数组中使用 "unique" => "test@gmail.com"
- 创建具有电子邮件
$Cemail
的联系人的函数
function createContact($Cemail) { $params = [ "method" => "POST", "Email" => $Cemail ]; $result = Mailjet::contact($params); if (Mailjet::getResponseCode() == 201) echo "success - created contact ".$Cname; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 将 ID 为
$contactID
的联系人添加到 ID 为$listID
的列表的函数
function addContactToList($contactID, $listID) { $params = [ "method" => "POST", "ContactID" => $contactID, "ListID" => $listID, "IsActive" => "True" ]; $result = Mailjet::listrecipient($params); if (Mailjet::getResponseCode() == 201) echo "success - contact ".$contactID." added to the list ".$listID; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 一个用于删除ID为
$listID
的列表的函数
function deleteList($listID) { $params = [ "method" => "DELETE", "ID" => $listID ]; $result = Mailjet::contactslist($params); if (Mailjet::getResponseCode() == 204) echo "success - deleted list"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 一个用于从ID为
$listID
的列表中获取未订阅的联系人的函数
function getUnsubscribedContactsFromList($listID) { $params = [ "method" => "GET", "ContactsList" => $listID, "Unsub" => true ]; $result = Mailjet::listrecipient($params); if (Mailjet::getResponseCode() == 200) echo "success - got unsubscribed contact(s) "; else echo "error - ".Mailjet::getResponseCode(); return $result; }
- 一个用于获取ID为
$contactID
的联系人的函数
function getContact($contactID) { $params = [ "method" => "VIEW", "ID" => $contactID ]; $result = Mailjet::contact($params); if (Mailjet::getResponseCode() == 200) echo "success - got contact ".$contactID; else echo "error - ".Mailjet::getResponseCode(); return $result; }
注意:您可以使用资源的唯一字段而不是 ID,例如,在示例中,您可以在 params
数组中使用 "unique" => "test@gmail.com"
通讯录
您可以使用DetailContent
操作来管理通讯录的内容,包括文本和Html。它有两个属性:Text部分
和Html部分
。您可以使用GET
、POST
、PUT
和DELETE
对这一操作进行请求
GET
:您将获取通讯录的Text部分
和Html部分
属性POST
:更新Text部分
和Html部分
的内容。如果您只指定一个,另一个将被清空PUT
:更新Text部分
和Html部分
的内容。您只能指定一个,它不会清空另一个DELETE
:更新Text部分
和Html部分
的内容,并将两者都置为空。
使用GET
在DetailContent
上的示例
function getNewsletterDetailcontent($newsletter_id) { $params = [ "method" => "GET", "ID" => $newsletter_id ]; $result = Mailjet::newsletterDetailContent($params); if (Mailjet::getResponseCode() == 200) echo "success - got content for the newsletter ". $newsletter_id; else echo "error - ".Mailjet::getResponseCode(); return $result; }
使用schedule
操作来延迟发送通讯录。您只需要执行一个POST
请求来安排新的发送,并将date
属性填充为ISO 8601格式的Timestamp:http://www.iso.org/iso/home/standards/iso8601.htm 您还可以在此处DELETE
一个安排
function scheduleNewsletter($newsletter_id) { $params = [ "method" => "POST", "ID" => $newsletter_id, "date" => "2014-11-25T10:12:59Z" ); $result = Mailjet::newsletterSchedule($params); if (Mailjet::getResponseCode() == 201) echo "success - schedule done for the newsletter ". $newsletter_id; else echo "error - ".Mailjet::getResponseCode(); return $result; }
立即发送通讯录,您有两个选择
- 使用一个值是
NOW
的TimestampPOST
一个新的安排 - 使用发送(仅支持
POST
)对于第二种情况,这里有一个示例
function sendNewsletter($newsletter_id) { $params = [ "method" => "POST", "ID" => $newsletter_id ]; $result = Mailjet::newsletterSend($params); if (Mailjet::getResponseCode() == 201) echo "success - newsletter ". $newsletter_id . " has been sent"; else echo "error - ".Mailjet::getResponseCode(); return $result; }
您还可以在正式发送之前通过发送到一些指定的收件人来测试通讯录。为此,您需要对一个具有test
操作的通讯录执行一个POST
请求,如下面的示例所示
function testNewsletter($newsletter_id) { $recipients = [ ['Email' => 'mailjet@example.org', 'Name' => 'Mailjet'] ]; $params = [ "method" => "POST", "ID" => $newsletter_id, "Recipients" => $recipients ]; $result = Mailjet::newsletterTest($params); if (Mailjet::getResponseCode() == 201) echo "success - newsletter ". $newsletter_id . " has been sent"; else echo "error - ".Mailjet::getResponseCode(); return $result; }