Bundle to use MJML with Symfony.
Download the bundle:
composer require notfloran/mjml-bundleEnable the Bundle:
<?php
// ...
class AppKernel extends Kernel
{
public function registerBundles()
{
$bundles = array(
// ...
new NotFloran\MjmlBundle\MjmlBundle(),
);
// ...
}
// ...
}Example:
mjml:
bin: "%kernel.root_dir%/../node_modules/.bin/mjml" # default: mjml
mimify: true # default: false{# mail/example.mjml.twig #}
<mjml>
<mj-body>
<mj-container>
<mj-section>
<mj-column>
<mj-image width="100" src="https://mjml.io/assets/img/logo-small.png"></mj-image>
<mj-divider border-color="#F45E43"></mj-divider>
<mj-text font-size="20px" color="#F45E43" font-family="helvetica">
Hello {{ name }} from MJML and Symfony
</mj-text>
</mj-column>
</mj-section>
</mj-container>
</mj-body>
</mjml>$message = (new \Swift_Message('Hello Email'))
->setFrom('my-app@example.fr')
->setTo('me@example.fr')
->setBody(
$this->get('mjml')->render(
$this->get('twig')->render('mail/example.mjml.twig', [
'name' => 'Floran'
])
),
'text/html'
)
;
$this->get('mailer')->send($message);{# mail/example.mjml.twig #}
{% block email_content %}
{% mjml %}
<mjml>
<mj-body>
<mj-container>
<mj-section>
<mj-column>
<mj-image width="100" src="https://mjml.io/assets/img/logo-small.png"></mj-image>
<mj-divider border-color="#F45E43"></mj-divider>
<mj-text font-size="20px" color="#F45E43" font-family="helvetica">
Hello {{ name }} from MJML and Symfony
</mj-text>
</mj-column>
</mj-section>
</mj-container>
</mj-body>
</mjml>
{% endmjml %}
{% endblock %}$message = (new \Swift_Message('Hello Email'))
->setFrom('my-app@example.fr')
->setTo('me@example.fr')
->setBody(
$this->get('twig')->render('mail/example.mjml.twig', [
'name' => 'Floran'
]),
'text/html'
)
;
$this->get('mailer')->send($message);MjmlBundle is licensed under the MIT license.