webmaker-mailroom

This module outputs rendered/localized html for Webmaker emails given a template name, some arbitrary data, and a locale.

Webmaker mailroom

This module outputs rendered/localized html for Webmaker emails given a template name, some arbitrary data, and a locale.

npm install webmaker-mailroom
var mailroom = require('webmaker-mailroom');
 
// Configure
var templateName = 'badge_awarded';
var data = {
  name: 'Kate Hudson',
  faveTeam: 'DFB'
};
var options = {
  locale: 'en-US',
  partial: true
};
 
var email = mailroom.render(templateName, data, options);
// Output
// email.html: The html of the email body
// email.subject: The subject of the html
  • locale - The locale of the email, defaults to en-US.
  • partial - Only render the body of the email, do not include html headers/footers. Defaults to false. Do NOT set this to true if you are passing the email directly to node-mailer, you want to include the full html.

If you are developing a template, install gulp with npm install -g gulp and simply run:

npm install
gulp dev

This will start a watch process, build test files as you make changes, and run a server so you can view them in a browser.

gulp test
  1. Run gulp new. Choose an appropriate id for your email, e.g. my_awesome_email.
  2. In templates/my_awesome_email/index.html, create a template. Refer to the nunjucks templating docs for how to add templated data.
  3. In templates/my_awesome_email/index.js, add a name, description, and some test data for your email.
  4. Run gulp test to validate your template with the test data you provided, or gulp dev to see the email in the browser.