Skip to content

Effortlessly craft responsive email templates using MJML within Laravel Mailables

License

Notifications You must be signed in to change notification settings

Webnuvola/laravel-mjml

Repository files navigation

Laravel MJML

Latest Version on Packagist GitHub Tests Action Status Total Downloads

Effortlessly craft responsive email templates using MJML within Laravel Mailables.

To use this package, follow these steps after generating a new Mailable.
Instead of extending Illuminate\Mail\Mailable, extend Webnuvola\Laravel\Mjml\Mailable.
In the Mailable class, define the build method.
You can now use the mjml method for defining a view or mjmlContent to directly pass the MJML template.

Here's an example:

use Webnuvola\Laravel\Mjml\Mailable;

class TestMail extends Mailable
{
    /**
     * Build the message.
     */
    public function build(): void
    {
        $this->mjml('emails.orders.shipped', [
            'order' => $order,
        ]);
    }
}

Installation

You can install the package via composer:

composer require webnuvola/laravel-mjml

In your project, or on your server, you must have the JavaScript package mjml installed.

npm install mjml

Make sure you have installed Node 16 or higher.
This package uses spatie/mjml-php under the hood.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

Inspired by asahasrabuddhe/laravel-mjml package.

License

The MIT License (MIT). Please see License File for more information.