suarezl1w / cakephp-email-queue
数据库中存储的电子邮件的队列、预览和发送
V4.0.3
2022-05-04 18:39 UTC
Requires
- cakephp/cakephp: ~4.0
Requires (Dev)
- cakephp/cakephp-codesniffer: ^4.0
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^8.5
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