lorenzo / cakephp-email-queue
队列、预览并发送存储在数据库中的电子邮件
5.1.0
2022-12-16 11:48 UTC
Requires
- cakephp/cakephp: ^4.4
Requires (Dev)
- cakephp/cakephp-codesniffer: ^4.0
- cakephp/migrations: ^3.7
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^8.5.23
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