jsefton/laravel-mailing-list

Laravel 邮件列表管理器

1.0.0 2021-05-03 18:50 UTC

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_namelast_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+,直到在更低版本中进行测试和验证。