vercoutere / laravel-mjml
一个允许您在Laravel邮件中使用的MJML模板的包。
v0.4.0
2024-03-22 22:49 UTC
Requires
- php: ^8.2.0
- guzzlehttp/guzzle: ^7.8
- laravel/framework: ^11.0
- soundasleep/html2text: ^2.1
- symfony/process: ^7.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.5
- symfony/phpunit-bridge: ^7.0
This package is auto-updated.
Last update: 2024-09-23 00:06:22 UTC
README
安装
使用Composer安装此包
composer require vercoutere/laravel-mjml
配置
渲染策略
使用此包渲染MJML有两种可用的策略
local
:使用本地MJML二进制文件。api
:使用公开可用的 MJML API。
策略可以通过环境变量进行配置。
MJML_STRATEGY=local/api
本地策略
要使用本地策略,您需要在您的机器上安装NodeJS和MJML。建议使用可用的 npm包 安装MJML。
如果您不是使用npm包安装MJML,您还需要配置MJML安装路径
MJML_BINARY_PATH=/path/to/your/mjml/installation
API策略
当使用API策略时,您需要配置您的应用程序ID和密钥。
MJML_APP_ID=your-app-id
MJML_SECRET_KEY=your-secret
视图缓存
MJML编译器实现扩展了Laravel的Blade编译器。这意味着视图缓存的行为相同,可以使用 view:cache
Artisan命令和 view.cache
配置变量进行管理。
使用方法
要在您的邮件中使用MJML,请确保您的邮件扩展了 Vercoutere\LaravelMjml\MjmlMailable
类,而不是默认的 Illuminate\Mail\Mailable
类。
use Illuminate\Mail\Mailables\Content; use Vercoutere\LaravelMjml\MjmlMailable; class MyMail extends MjmlMailable { public function content(): Content { return new Content( view: 'my-template', ); } }
在MJML邮件中要使用的模板文件必须具有 .mjml.blade.php
扩展名。
MJML模板中的Blade指令必须被
mj-raw
标签包裹,以防止MJML引擎尝试解析它们。
<mjml> <mj-body> <mj-section> <mj-column> <mj-raw>@if (true)</mj-raw> <mj-text font-size="20px" color="#F45E43">{{ App::environment() }}</mj-text> <mj-raw>@endif</mj-raw> </mj-column> </mj-section> </mj-body> </mjml>