rennokki/ laravel-mjml
Laravel MJML 提供将 MJML 语法渲染为内联 HTML 的支持,可以用于邮件中发送。
Requires
- guzzlehttp/guzzle: ^6.3@dev
- mustache/mustache: dev-master
Requires (Dev)
- orchestra/database: ~3.5.0|~3.6.0
- orchestra/testbench: ~3.5.0|~3.6.0
- phpunit/phpunit: ^6.2|^7.0
This package is auto-updated.
Last update: 2020-08-16 21:34:06 UTC
README
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 beta
在 https://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!']);