Laravel Packages

MJML to HTML using PHP

Published
MJML to HTML using PHP image

MJML PHP is a package by Spatie to Convert MJML to HTML using PHP. MJML is a markup language designed to reduce the pain of writing responsive email templates. Templates use semantic markup and are even responsive in Outlook.

Here's the most basic usage from the package's README file:

use Spatie\Mjml\Mjml;
 
$mjml = <<<'MJML'
<mjml>
<mj-body>
<mj-section>
<mj-column>
<mj-text invalid-attribute>Hello World</mj-text>
</mj-column>
</mj-section>
</mj-body>
</mjml>
MJML;
 
$html = Mjml::new()->toHtml($mjml);

MJML doesn't have a PHP implementation to convert to HTML—the package uses the node version behind the scenes. You can even use the mjml-sidecar package to compile MJML to HTML using Sidecar. Using this package, you won't need to have Node available on your server, and all conversions to HTML will be done in AWS Lambda.

To get started with this package, you should familiarize yourself with the Documentation for MJML. The MJML PHP package and documentation can be found on GitHub at spatie/mjml-php.

If you'd like to learn more background on the creation of this package, read Freek Van der Herten's writeup, Craft emails that look good in each email client using MJML.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

tinkerwell logo
Tinkerwell

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Visit Tinkerwell

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article