pomeloproductions / laravel-newsletter
在 Laravel 中管理新闻通讯
Requires
- php: ^7.3
- drewm/mailchimp-api: ^2.4
- illuminate/support: ~5.8.0|^6.0|^7.0|^8.0
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-29 05:36:33 UTC
README
此包提供了一种简单的方法将 MailChimp 与 Laravel 集成。
如果您发现 Mailchimp 对您的使用案例来说太贵了,考虑使用 Mailcoach 代替。Mailcoach 是一个高级 Laravel 包,允许您自托管您的电子邮件列表和活动。
安装
您可以通过 composer 使用以下命令安装此包:
composer require pomeloproductions/laravel-newsletter
此包将自动注册自身。
要发布配置文件到 config/newsletter.php,请运行:
php artisan vendor:publish --provider="PomeloProductions\Newsletter\NewsletterServiceProvider"
这将在一个配置目录中发布一个名为 newsletter.php 的文件,内容如下:
return [ /* * The driver to use to interact with MailChimp API. * You may use "log" or "null" to prevent calling the * API directly from your environment. */ 'driver' => env('MAILCHIMP_DRIVER', 'api'), /* * The API key of a MailChimp account. You can find yours at * https://us10.admin.mailchimp.com/account/api-key-popup/. */ 'apiKey' => env('MAILCHIMP_APIKEY'), /* * The listName to use when no listName has been specified in a method. */ 'defaultListName' => 'subscribers', /* * Here you can define properties of the lists. */ 'lists' => [ /* * This key is used to identify this list. It can be used * as the listName parameter provided in the various methods. * * You can set it to any string you want and you can add * as many lists as you want. */ 'subscribers' => [ /* * A MailChimp list id. Check the MailChimp docs if you don't know * how to get this value: * http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id. */ 'id' => env('MAILCHIMP_LIST_ID'), ], ], /* * If you're having trouble with https connections, set this to false. */ 'ssl' => true, ];
使用方法
幕后使用的是 MailChimp API 的 v3 版本。
安装此包并填写配置文件中的值后,使用此包将会变得非常容易。以下所有示例都使用外观。请勿忘记在文件顶部导入它。
use Newsletter;
订阅、更新和取消订阅
可以通过以下方式订阅电子邮件地址
use Newsletter; Newsletter::subscribe('rincewind@discworld.com');
让我们取消某人的订阅
Newsletter::unsubscribe('the.luggage@discworld.com');
您可以将一些合并变量作为第二个参数传递
Newsletter::subscribe('rincewind@discworld.com', ['FNAME'=>'Rince', 'LNAME'=>'Wind']);
请注意,在本写作时,Mailchimp 的默认合并变量名为
FNAME和LNAME。在我们的示例中,我们使用firstName和lastName以提高可读性。
您可以通过使用第三个参数将某人订阅到特定列表
Newsletter::subscribe('rincewind@discworld.com', ['FNAME'=>'Rince', 'LNAME'=>'Wind'], 'subscribers');
第三个参数是在配置文件中配置的列表的名称。
您也可以订阅或更新某人。如果该人已经订阅,则将订阅或更新该人
Newsletter::subscribeOrUpdate('rincewind@discworld.com', ['FNAME'=>'Foo', 'LNAME'=>'Bar']);
您可以使用第四个参数通过使用一个或多个特定的组/兴趣订阅某人
Newsletter::subscribeOrUpdate('rincewind@dscworld.com', ['FNAME'=>'Rince','LNAME'=>'Wind'], 'subscribers', ['interests'=>['interestId'=>true, 'interestId'=>true]])
如果您想从组/兴趣中删除某人,只需简单添加 false。
您还可以从特定列表中取消某人的订阅
Newsletter::unsubscribe('rincewind@discworld.com', 'subscribers');
删除订阅者
删除与取消订阅不同。与取消订阅不同,删除成员将导致丢失所有历史记录(添加/订阅/编辑)以及从列表中删除他们。在大多数情况下,您想要使用 unsubscribe 而不是 delete。
以下是执行删除的方法
Newsletter::delete('rincewind@discworld.com');
永久删除订阅者
删除与列表成员相关的所有个人身份信息,并将他们从列表中删除。这将使无法重新导入列表成员。
以下是执行永久删除的方法
Newsletter::deletePermanently('rincewind@discworld.com');
获取订阅者信息
您可以使用 getMember 函数获取关于订阅者的信息
Newsletter::getMember('lord.vetinari@discworld.com');
这将返回一个包含订阅者信息的数组。如果没有人使用该电子邮件地址订阅,则函数将返回 false
还有一个方便的方法来检查某人是否已经订阅
Newsletter::hasMember('nanny.ogg@discworld.com'); //returns a boolean
除了这个,您还可以检查用户是否已订阅您的列表
Newsletter::isSubscribed('lord.vetinari@discworld.com'); //returns a boolean
创建活动
这是 createCampaign 的签名
public function createCampaign( string $fromName, string $replyTo, string $subject, string $html = '', string $listName = '', array $options = [], array $contentOptions = [])
请注意,活动将被创建,但不会发送任何电子邮件。
处理错误
如果出现问题,您可以使用以下命令获取最后一个错误:
Newsletter::getLastError();
如果您只想确保最后一个操作是否成功,可以使用
Newsletter::lastActionSucceeded(); //returns a boolean
需要其他什么吗?
如果您需要更多功能,您可以获取底层 MailChimp API 的实例。
$api = Newsletter::getApi();
测试
使用以下命令运行测试:
vendor/bin/phpunit
更新日志
请参阅 更新日志 以获取更多关于最近更改的信息。
贡献
有关详细信息,请参阅 贡献指南。
安全
如果您发现任何安全问题,请发送电子邮件至 bryce@pomeloproductions.com,而不是使用问题跟踪器。
鸣谢
- Freek Van der Herten
- 所有贡献者致力于分配人力维护和新奇功能。
许可证
MIT许可证(MIT)。请参阅 许可证文件 获取更多信息。