rennokki/laravel-mjml

此包已被弃用,且不再维护。未建议替代包。

Laravel MJML 提供将 MJML 语法渲染为内联 HTML 的支持,可以用于邮件中发送。

1.0.0 2018-08-05 10:15 UTC

This package is auto-updated.

Last update: 2020-08-16 21:34:06 UTC


README

Build Status codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License

PayPal

Laravel MJML

Laravel MJML 是一个简单的 API 包装器,用于 MJML.io Render API。如果您不知道什么是 MJML.io,它是一种帮助更轻松、更快地构建邮件的语言,无需处理内联 HTML。它有自己的语法,可以使用他们的应用、在线编辑器或他们的 API 进行渲染。

此 API 包装器集成了 Mustache 引擎,因此您可以使用 Mustache 的值来渲染 MJML 为 HTML。

如果您不知道什么是 Mustache,请查看 这篇 Medium 文章,它更好地解释了 Mustache 并指导您如何在邮件中使用它。

安装

安装包

$ composer require rennokki/laravel-mjml

如果您的 Laravel 版本不支持包发现,请将以下行添加到您的 config/app.php 文件中的 providers 数组中

Rennokki\LaravelMJML\LaravelMJMLServiceProvider::class,

设置 API

由于这是一个 API,您需要凭证。为此,您将不得不从他们的 API 页面请求凭证:通过点击 Join the betahttps://mjml.io/api。这可能需要一些时间,所以请耐心等待。

要验证 API,您必须调用 Rennokki\LaravelMJML\LaravelMJML 类,然后通过链式方法添加您的 App ID 和您的 Secret Key

use Rennokki\LaravelMJML\LaravelMJML;

$api = (new LaravelMJML())->setAppId('app_id')->setSecretKey('secret_key');

注意:当从后端进行请求时,只需要 Secret Key。如果您计划从前端执行操作,则必须使用提供的 Public Key,因为在前端存储敏感凭证是不可能的。

启动 MJML

我们将在此说明中使用 MJML 代码

<mjml>
  <mj-body>
    <mj-section>
      <mj-column>
        <mj-text font-size="20px" color="#F45E43" font-family="helvetica">
            Hello World
        </mj-text>
      </mj-column>
    </mj-section>
  </mj-body>
</mjml>

渲染

在渲染时,只需调用 render() 方法即可完成工作

$html = $api->render($mjml);

作为返回值,您将得到编译后的 HTML。如果由于某些原因渲染失败,则返回 null,例如

$html = $api->render('<h1>MJML</h1>'); // null

使用 Mustache 渲染

如果您已经开始了 Mustache,您可以使用相同的方法将 MJML 渲染为 HTML,然后在编译后的 HTML 中使用相同的方法渲染 Mustache 变量。

对于此示例,我们的 MJML 可能看起来像这样

<mjml>
  <mj-body>
    <mj-section>
      <mj-column>
        <mj-text font-size="20px" color="#F45E43" font-family="helvetica">
            {{message}}
        </mj-text>
      </mj-column>
    </mj-section>
  </mj-body>
</mjml>

您可以使用带有 MJML 和包含需要注入的参数的数组的 renderWithMustache 方法调用

$html = $api->renderWithMustache($mjml, ['message' => 'Hello World!']);