suarezl1w/cakephp-email-queue

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

V4.0.3 2022-05-04 18:39 UTC

This package is auto-updated.

Last update: 2024-09-04 23:39:38 UTC


README

此插件基于lorenzo/cakephp-email-queue插件,提供了一种动态创建电子邮件并存储到队列中,由离线工作器使用cakephp shell命令稍后处理的接口。

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

要求

  • CakePHP 4.x

安装

composer require suarezl1w/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 个参数

  • 第一个参数是字符串或电子邮件地址数组,这些地址将被视为收件人。
  • 第二个参数是要传递给电子邮件模板的视图变量数组
  • 第三个参数是选项数组,可能的选项包括
  • language:电子邮件的国际化语言
  • prefix:主题前缀,例如[应用名称]
  • 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