jsefton / laravel-mailing-list
Laravel 邮件列表管理器
Requires
- jsefton/laravel-virtual-fields: ^1.0
- laravel/framework: >=7.0
This package is auto-updated.
Last update: 2024-08-29 05:44:02 UTC
README
此软件包提供了一种快速开箱即用的邮件列表存储和API,用于添加人员到特定的邮件列表。
您可以创建一个邮件列表,然后将电子邮件联系人附加到该列表。
安装
composer require jsefton/laravel-mailing-list
您需要发布配置以设置是否启用API。
php artisan vendor:publish --tag=mailing-list.config
接下来运行迁移以添加所需的表。
php artisan migrate
用法
配置
配置文件允许您启用或禁用API功能。API功能提供了一个POST端点,您可以在应用程序中消耗该端点以发送数据,并将其存储在特定的邮件列表中。
API标志通过环境变量MAILING_LIST_API
设置。
/** * Enable API for mailing lists to allow creation */ 'api' => env('MAILING_LIST_API', true),
您还可以将用于API订阅端点的路由更改为任何您想要的。
/** * Route for API requests (only registered if api is enabled) */ 'route' => '/api/mailing-list'
这将导致将API POST请求发送到/api/mailing-list/{id}
,其中{id}
是邮件列表的ID。
这已在应用程序中注册为命名路由,可以使用以下方式链接:
route('api.mailing-list.subscribe', ['id' => 1])
API
API仅公开一个端点供人们订阅,以避免暴露任何数据。
您可以将以下数据发送到端点
{ "email": "info@endor.digital", "first_name": "Jamie", (optional) "last_name": "Sefton", (optional) "source": "Website" (optional) }
许多表单不会有first_name
和last_name
两个字段。因此,API已构建为允许您仅POSTname
字段,并且会自动将其拆分为姓氏和名字。例如:
{ "email": "info@endor.digital", "name": "Jamie Sefton", (optional) "source": "Website" (optional) }
控制台
您可以直接通过数据库、您自己创建的UI或随附的控制台命令创建一个新的邮件列表。您可以通过运行以下命令来做到这一点:
php artisan mailing-list:create
这将要求您输入邮件列表的名称。完成后,它将返回新邮件列表的ID,您可以在应用程序中使用该ID创建到API的POST请求。
您可以通过运行以下命令在控制台中获取当前邮件列表的列表:
php artisan mailing-list:list
+----+------+ | ID | Name | +----+------+ | 1 | Test | +----+------+
模型
如果您只想在应用程序中消耗模型并可能不使用API,则可以使用以下模型。这些模型是标准的eloquent模型,可以以标准Laravel方式使用。
MailingList
命名空间:JSefton\MailingList\Models\MailingList
包含用户订阅的各个列表,这些列表可以通过上述控制台命令创建。
您可以加载后通过以下方式获取附加到特定列表的电子邮件联系人:
$emails = $mailingList->emails
MailingListEmail
命名空间:JSefton\MailingList\Models\MailingListEmail
这是每个订阅电子邮件的对象。它们附加到邮件列表,并且每个列表的每个电子邮件都是唯一的。
您可以通过以下方式获取它们附加到的邮件列表:
$list = $email->mailingList
请注意,目前对于Laravel 7+,直到在更低版本中进行测试和验证。