All Projects → rennokki → laravel-mjml

rennokki / laravel-mjml

Licence: MIT License
Laravel MJML offers support for rendering MJML syntax into in-line HTML that can be sent within mails.

Programming Languages

PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to laravel-mjml

Preview Email
Automatically opens your browser to preview Node.js email messages sent with Nodemailer. Made for Lad!
Stars: ✭ 112 (+330.77%)
Mutual labels:  email, templates, render
Django Mail Templated
Send emails using Django template system
Stars: ✭ 146 (+461.54%)
Mutual labels:  mail, email, templates
Postmark.js
Official Node.js library for the Postmark API
Stars: ✭ 177 (+580.77%)
Mutual labels:  mail, email, templates
ESP-Mail-Client
⚡️Arduino Mail Client Library to send, read and get incoming mail notification for ESP32, ESP8266 and SAMD21 devices. The library also supported other Arduino devices using Clients interfaces e.g. WiFiClient, EthernetClient, and GSMClient.
Stars: ✭ 78 (+200%)
Mutual labels:  mail, email
django-renderpdf
📄 A Django app to render django templates as PDF files.
Stars: ✭ 37 (+42.31%)
Mutual labels:  templates, render
laravel-postal
This library integrates Postal with the standard Laravel mail framework.
Stars: ✭ 20 (-23.08%)
Mutual labels:  mail, email
Mailjet Apiv3 Php
[API v3] Mailjet PHP Wrapper
Stars: ✭ 194 (+646.15%)
Mutual labels:  wrapper, email
mailx
A lightweight SMTP mail library
Stars: ✭ 17 (-34.62%)
Mutual labels:  mail, email
nuxt-mail
Adds email sending capability to a Nuxt.js app. Adds a server route, an injected variable, and uses nodemailer to send emails.
Stars: ✭ 62 (+138.46%)
Mutual labels:  mail, email
ProtonClient
An unofficial desktop client for ProtonMail done with electron nativefier
Stars: ✭ 50 (+92.31%)
Mutual labels:  mail, email
muil
Muil is a framework to build, maintain and manage dynamic templates using React and tools you know and love
Stars: ✭ 26 (+0%)
Mutual labels:  email, templates
mailing
📬 Sending emails with pleasure and prepared templates.
Stars: ✭ 15 (-42.31%)
Mutual labels:  mail, mailing
dry
Dry is a new template engine and language, and is a superset of Shopify's Liquid, with first-class support for advanced inheritance features, and more. From the creators of Enquirer, Assemble, Remarkable, and Micromatch.
Stars: ✭ 66 (+153.85%)
Mutual labels:  templates, render
Mail
基于 Net.Mail 封装的发送邮件工具类。仅需一行代码,发送邮件。支持自定义邮件发出邮箱、发出方名字等。 支持SSL加密发送。 多个接收人、抄送人。支持群发独显。 支持添加附件、多个附件。 目前大部分主流邮箱全支持。
Stars: ✭ 87 (+234.62%)
Mutual labels:  mail, email
shopify-mail-notifications
Blazing-fast Shopify mail notifications templating environment with Liquid, MJML and Twig
Stars: ✭ 25 (-3.85%)
Mutual labels:  mail, mjml
go-simple-mail
Golang package for send email. Support keep alive connection, TLS and SSL. Easy for bulk SMTP.
Stars: ✭ 298 (+1046.15%)
Mutual labels:  mail, email
mjml-syntax
Sublime package for the MJML
Stars: ✭ 44 (+69.23%)
Mutual labels:  email, mjml
mailtrap
MailTrap has been renamed to Sendria. Please use Sendria now, MailTrap is abandoned. MailTrap is a SMTP server designed to run in your dev/test environment, that is designed to catch any email you or your application is sending, and display it in a web interface instead of sending to real world.
Stars: ✭ 14 (-46.15%)
Mutual labels:  mail, email
mjml-starter-kit
MJML starter kit, create responsive emails very quickly using MJML and this productive toolchain
Stars: ✭ 35 (+34.62%)
Mutual labels:  email, mjml
Mailjet Gem
[API v3] Mailjet official Ruby GEM
Stars: ✭ 119 (+357.69%)
Mutual labels:  wrapper, email

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

PayPal

Laravel MJML

Laravel MJML is a simple API wrapper for the MJML.io Render API. In case you don't know what MJML.io is, it is a language that helps building mails easier and faster without messing up with inline HTML. It has its own syntax that can be later rendered using their apps, online editor or their API.

This API wrapper comes with Mustache Engine integrated, so you can both render the MJML to HTML with applied values from Mustache.

If you don't know what Mustache is check this Medium article that explains better Mustahce and gets you started on how to use it in your email.

Installation

Install the package:

$ composer require rennokki/laravel-mjml

If your Laravel version does not support package discovery, add this line in the providers array in your config/app.php file:

Rennokki\LaravelMJML\LaravelMJMLServiceProvider::class,

Setting up the API

Since it is an API, you'll need credentials. For this, you will have to request yours from their API page: https://mjml.io/api by clicking Join the beta. It will take some time to get yours, so be patient.

To authenticate the API, you will have to call the Rennokki\LaravelMJML\LaravelMJML class and then, by chaining methods, to add your App ID and your Secret Key.

use Rennokki\LaravelMJML\LaravelMJML;

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

Note: when making requests from the backend, just the Secret Key is required. If you plan to do it from the frontend, you will have to use your provided Public Key instead, since storing sensitive credentials in frontend is not possible.

Starting MJML

As MJML code, we'll use this throughout the readme:

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

Rendering

When rendering, simply calling the render() method will do the work for you:

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

As a return, you will get the compiled HTML. In case this rendering failed, due to reasons, you will get null, for example:

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

Rendering with Mustache

If you got started with Mustache, you can render the MJML to HTML and then render the Mustache variables in your compiled HTML using the same method.

For this example, our MJML would look like this:

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

You can call renderWithMustache method with MJML and an array which consist the parameters that need to injected:

$html = $api->renderWithMustache($mjml, ['message' => 'Hello World!']);
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].