vercoutere/laravel-mjml

一个允许您在Laravel邮件中使用的MJML模板的包。

v0.4.0 2024-03-22 22:49 UTC

This package is auto-updated.

Last update: 2024-09-23 00:06:22 UTC


README

Run tests

安装

使用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>