escolalms/templates-email

Escola 无头 LMS 邮件模板

0.1.65 2024-02-14 14:31 UTC

README

用于编辑模板的邮件通知包(用于重要的用户相关事件)

codecov Tests PHPUnit in environments Maintainability Test Coverage downloads downloads downloads

用途

此包允许您为 Laravel 应用中发出的事件创建邮件通知。

每个通知都作为描述可用于模板的变量(模板将在数据库中创建并通过管理面板进行编辑)的类来创建。此类必须使用模板包中的 Template 门面进行注册,您指定它关联的事件以及它通过哪个渠道发送(例如,当在此包中定义时,为电子邮件渠道)。

安装

  • composer require escolalms/templates-email
  • php artisan db:migrate
  • php artisan db:seed --class="EscolaLms\TemplatesEmail\Database\Seeders\TemplatesEmailSeeder"

依赖项

使用方法

定义模板

  1. 创建触发使用指定模板发送电子邮件的事件。此事件必须实现返回 LMS 核心包中的 User 模型的 getUser() 方法。
  2. 创建定义模板变量的类,您将在电子邮件通知中使用这些变量。
  3. 通过使用 EscolaLms\Templates\Facades\Template::register(Event class, EscolaLms\TemplatesEmail\Core\EmailChannel::class, Variable class); 将描述模板变量的类与事件和通知应通过哪个渠道发送相关联。
  4. 在数据库中注册模板以供管理面板使用或使用 /api/admin/templates,在 模板包 中有更详细的描述

Mjml (预)渲染

  1. 电子邮件使用 MJML 编写,然后在保存模板时预先渲染成 HTML(这样发送电子邮件时就不会为每条消息调用渲染器)。
  2. 要渲染 MJML,您需要
    • 安装 mjml npm 包并在该包配置中配置可执行二进制文件的路径 binary_path
    • 注册到 MJML API 并在配置文件中配置 api id & secret

测试

运行 ./vendor/bin/phpunit --filter 'EscolaLms\\TemplatesEmail\\Tests' 来运行测试。请参阅 tests 文件夹,其中包含一个带有最小定制的变量(或模板描述)类的基本实现 - 创建您自己的一个相当好的起点。

测试详情 codecov Tests PHPUnit in environments

权限

此包未定义权限。