lorenzo/cakephp-email-queue

队列、预览并发送存储在数据库中的电子邮件

安装数: 115,994

依赖关系: 1

建议者: 1

安全: 0

星标: 56

关注者: 9

分支: 30

公开问题: 10

类型:cakephp-plugin

5.1.0 2022-12-16 11:48 UTC

This package is auto-updated.

Last update: 2024-09-16 16:05:54 UTC


README

此插件提供了一种创建电子邮件的接口,并将其存储在队列中以供以后使用 cakephp shell 命令由离线工作进程处理。

它还包含一个方便的 shell,用于预览队列中的电子邮件,这对于修改电子邮件模板并查看结果非常有用。

要求

  • CakePHP 4.x

安装

composer require lorenzo/cakephp-email-queue

该插件使用 Debug 电子邮件传输,因此请确保您的电子邮件配置包含它

'EmailTransport' => [
        'Debug' => [
            'className' => 'Debug'
        ],
]

启用插件

bin/cake plugin load EmailQueue

加载所需的数据库表

为了使用此插件,您需要创建一个数据库表。所需的 SQL 位于

# config/Schema/email_queue.sql

只需将其加载到您的数据库中。您可以将文件更改为使用整数主键而不是 UUID。

或者运行迁移命令

bin/cake migrations migrate --plugin EmailQueue

用法

每当您需要发送电子邮件时,请使用 EmailQueue 模型创建和排队一个新电子邮件,并存储正确的数据

use EmailQueue\EmailQueue;
EmailQueue::enqueue($to, $data, $options);

enqueue 方法接收 3 个参数

  • 第一个参数是一个字符串或电子邮件地址数组,将作为收件人处理。
  • 第二个参数是要传递给电子邮件模板的视图变量数组
  • 第三个参数是选项数组,可能的选项有
  • subject: 电子邮件的主题
  • send_at: 表示应发送电子邮件的时间的日期时间字符串(UTC 时间)
  • template: 用作电子邮件消息模板的元素名称。(支持的最大长度为 100 个字符)
  • layout: 要包装电子邮件消息的布局名称
  • format: 要使用的模板类型(html、text 或两者都支持)
  • headers: 要发送在电子邮件中的键值列表
  • theme: 用于查找电子邮件模板的视图主题
  • config: 要用于发送的电子邮件配置名称
  • from_name: 从名称的字符串。必须与 from_email 一起提供。
  • from_email: 从电子邮件的字符串。必须与 from_name 一起提供。

预览电子邮件

可以预览仍在队列中的电子邮件,这在开发过程中非常有用,可以检查渲染的电子邮件是否看起来像它应该的样子;无需再次排队电子邮件,只需更改模板并再次运行预览即可。

# bin/cake EmailQueue.preview

发送电子邮件

应使用捆绑的 Sender 命令发送电子邮件,使用 -h 修饰符读取可用选项

# bin/cake EmailQueue.sender -h

您可以配置此命令以在 cron 或任何其他您希望使用的工具下运行。

贡献

运行测试

./vendor/bin/phpunit tests/

检查样式

./vendor/bin/phpcs ./src ./tests/ --standard=vendor/cakephp/cakephp-codesniffer/CakePHP