
Company News
Socket Partners with Replit to Block Malicious Packages in AI-Powered Development
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.
@vergissberlin/node-red-contrib-mjml
Advanced tools
Node for NodeRED to create prefessional emails with MJML language
— UI translations; see Translations (Crowdin) in CONTRIBUTING.
Node for NodeRED to create emails with MJML language. It provides a NodeRED node to parse your template and output HTML.
Change directory to your NodeRED installation and issue:
npm install @vergissberlin/node-red-contrib-mjml
OR go to your pallet settings in your NodeRED admin ui and search for "mjml".
In this repo there is example-flow.json. You can import that into a NodeRED workspace and it will provide a template
for getting working with the MJML node.

In this section, you're going to learn how to code a basic email template using MJML.
<mjml>
<mj-body>
<mj-raw>
<!-- Company Header -->
</mj-raw>
<mj-section background-color="#f0f0f0">
<mj-column>
<mj-text font-style="italic" font-size="20px" color="#626262">
My Company
</mj-text>
</mj-column>
</mj-section>
<mj-raw>
<!-- Image Header -->
</mj-raw>
<mj-section
background-url="http://1.bp.blogspot.com/-TPrfhxbYpDY/Uh3Refzk02I/AAAAAAAALw8/5sUJ0UUGYuw/s1600/New+York+in+The+1960's+-+70's+(2).jpg"
background-size="cover"
background-repeat="no-repeat">
<mj-column width="600px">
<mj-text align="center" color="#fff" font-size="40px" font-family="Helvetica Neue">
Slogan here
</mj-text>
<mj-button background-color="#F63A4D" href="#">Promotion</mj-button>
</mj-column>
</mj-section>
<mj-raw>
<!-- Intro text -->
</mj-raw>
<mj-section background-color="#fafafa">
<mj-column width="400px">
<mj-text font-style="italic" font-size="20px" font-family="Helvetica Neue" color="#626262">My Awesome
Text
</mj-text>
<mj-text color="#525252">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Proin rutrum enim eget magna efficitur, eu semper augue semper.
Aliquam erat volutpat. Cras id dui lectus. Vestibulum sed
finibus lectus, sit amet suscipit nibh. Proin nec commodo purus.
Sed eget nulla elit. Nulla aliquet mollis faucibus.
</mj-text>
<mj-button background-color="#F45E43" href="#">Learn more</mj-button>
</mj-column>
</mj-section>
<mj-raw>
<!-- Side image -->
</mj-raw>
<mj-section background-color="white">
<mj-raw>
<!-- Left image -->
</mj-raw>
<mj-column>
<mj-image width="200px"
src="https://designspell.files.wordpress.com/2012/01/sciolino-paris-bw.jpg"></mj-image>
</mj-column>
<mj-raw>
<!-- right paragraph -->
</mj-raw>
<mj-column>
<mj-text font-style="italic" font-size="20px" font-family="Helvetica Neue" color="#626262">
Find amazing places
</mj-text>
<mj-text color="#525252">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin rutrum enim eget
magna efficitur, eu semper augue semper. Aliquam erat volutpat. Cras id dui lectus. Vestibulum sed finibus lectus.
</mj-text>
</mj-column>
</mj-section>
<mj-raw>
<!-- Icons -->
</mj-raw>
<mj-section background-color="#fbfbfb">
<mj-column>
<mj-image width="100px" src="http://191n.mj.am/img/191n/3s/x0l.png"></mj-image>
</mj-column>
<mj-column>
<mj-image width="100px" src="http://191n.mj.am/img/191n/3s/x01.png"></mj-image>
</mj-column>
<mj-column>
<mj-image width="100px" src="http://191n.mj.am/img/191n/3s/x0s.png"></mj-image>
</mj-column>
</mj-section>
</mj-body>
</mjml>
Looks cool, right?
With MJML, you can easily develop responsive email without the pain of coding. Its semantic syntax and standard components library speed up your development process, and MJML's open-source engine generates code in under a minute. This open-source engine generates high quality responsive HTML that adheres to best practices. It is an effective tool for creating emails that has a very intuitive interface.
The node mjml-parse is a NodeRED node that parses your MJML template and outputs the HTML.

The mjml-parse node now includes an MJML editor in the node configuration dialog:
{{payload}}, {{topic}}, {{flow.myValue}}, {{global.myValue}}, {{env.MY_KEY}}) similar to the Node-RED Template nodeNode-RED 3+ uses Monaco as the default code editor in the node editor; older setups may still use Ace. This node integrates with both: diagnostics use Monaco model markers and line decorations, or Ace session annotations and full-line markers, depending on what RED.editor.createEditor() returns. To force Ace, set editorTheme.codeEditor.lib to "ace" in your Node-RED settings.js (see Node-RED documentation).

The editor includes a Starter template dropdown with:
Simple email: a clean one-column transactional layoutNode-RED style email: a dark, Node-RED inspired layout for flow notificationsCharts report: an email-safe KPI report with chart-like progress bars and a metric tableMinimal announcement: a lightweight, headline-first broadcast templateHow it works:
No starter template after insertion.Both starters are intentionally small and can be customized quickly (colors, CTA text, sections, placeholder names). The structures are inspired by common MJML template patterns from the official gallery, but implemented as original templates in this project.
Template source priority at runtime:
msg.templatemsg.payloadMJML semantic validation is still handled by the MJML compiler during runtime.
Preview notes:
POST …/mjml-parse/preview) is registered on the Node-RED admin API and is protected with RED.auth.needsPermission('flows.read') when authentication is enabled (same model as other admin configuration endpoints in the Node-RED cookbook). Unauthenticated requests are rejected when admin auth is required.Starter templates and i18n notes:
mjml-parse/resources/mjml-templates.json.mjmlParse.templates.* in mjml-parse/locales/*/mjml-parse.json.Autocomplete source reference:
mjml-preset-core component metadata (componentName, allowedAttributes) into mjml-parse/resources/mjml-tags.jsonmj-all, mj-class, mj-include) are retained from the VS Code MJML grammarpnpm run generate:mjml-tags
For release process, translations (Crowdin), and other contribution details, see CONTRIBUTING.md.
FAQs
Node for NodeRED to create prefessional emails with MJML language
We found that @vergissberlin/node-red-contrib-mjml demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Replit is integrating Socket Firewall into its AI-powered development experience to help protect builders from malicious open source packages.

Security News
npm confirmed a tooling bug incorrectly marked several one-character packages as security holders and said it was working on a rollback.

Research
/Security News
Newer packages in this compromise use native extensions and .pth loaders to execute JavaScript stealers in developer environments.