dansmaculotte/laravel-newsletter

在 Laravel 中管理新闻通讯

v4.0.0 2022-03-09 16:13 UTC

This package is auto-updated.

Last update: 2024-09-09 21:36:06 UTC


README

Latest Version Total Downloads Build Status Quality Score Code Coverage

此包是从 spatie/laravel-newsletter 分支出来的。它提供了一种简单的方法将不同的电子邮件服务与 Laravel 集成。

有 2 个可用的驱动程序

此外,还有一个 lognull 驱动程序用于测试和调试目的。

安装

您可以通过 composer 使用以下命令安装此包

composer require dansmaculotte/laravel-newsletter

包将自动注册自己。

要将配置文件发布到 config/newsletter.php,请运行

php artisan vendor:publish --provider="DansMaCulotte\Newsletter\NewsletterServiceProvider"

这将在您的配置目录中发布一个 newsletter.php 文件。

最后,安装所需的电子邮件服务包

  • Mailchimp
composer require drewm/mailchimp-api
  • Mailjet
composer require mailjet/mailjet-apiv3-php

使用方法

config/newsletter.php 中配置您的邮件模板驱动程序和凭证。

在安装了包并填写了配置文件中的值后,使用此包将变得非常简单。以下所有示例都使用了外观。别忘了在文件顶部导入它。

use Newsletter;

订阅、更新和取消订阅

订阅电子邮件地址可以这样做

use Newsletter;

Newsletter::subscribe('rincewind@discworld.com');

将电子邮件地址添加到列表中,但排除在营销电子邮件之外

use Newsletter;

Newsletter::addMember('rincewind@discworld.com');

让我们取消某人的订阅

Newsletter::unsubscribe('the.luggage@discworld.com');

您可以将选项作为第二个参数传递

Newsletter::subscribe('rincewind@discworld.com', ['FNAME' => 'Rince', 'LNAME' => 'Wind']);

您可以通过第三个参数将某人订阅到特定列表

Newsletter::subscribe('rincewind@discworld.com', ['FNAME' => 'Rince', 'LNAME' => 'Wind'], 'subscribers');

第三个参数是在配置文件中配置的列表名称。

您还可以订阅和/或更新某人。如果此人已经订阅,则会订阅或更新。

Newsletter::subscribeOrUpdate('rincewind@discworld.com', ['FNAME' => 'Foo', 'lastname' => 'Bar']);

您还可以从特定列表中取消某人的订阅

Newsletter::unsubscribe('rincewind@discworld.com', 'subscribers');

删除订阅者

删除与取消订阅不同。与取消订阅不同,删除成员将导致丢失所有历史记录(添加/订阅/编辑)以及将其从列表中删除。在大多数情况下,您希望使用 unsubscribe 而不是 delete

这就是执行删除的方式

Newsletter::delete('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

处理错误

如果出现问题,您可以使用以下方式获取最后一个错误

Newsletter::getLastError();

需要其他功能?

如果您需要更多功能,请使用以下方式获取底层 API 的实例

$api = Newsletter::getApi();

Mailjet 注意事项

当使用 mailjet 时,可能会发生连接超时,如此处所述。您可以使用配置密钥 mailjet.connection_timeout 配置所需值,它本身可以使用环境变量 MJ_CONNECTION_TIMEOUT

测试

使用以下命令运行测试

vendor/bin/phpunit

更新日志

请参阅 CHANGELOG 获取有关最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 获取详细信息。

许可证

麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。