nodemailer-mjml-mustache

0.4.1 • Public • Published

nodemailer-mjml-mustache

npm version

A plugin for nodemailer that uses mjml and mustache view engine to generate emails.

Installation

npm install nodemailer-mjml-mustache --save

Plugin Options

  • viewPath (required) provides the path to the directory where your views are

Mail Options

  • template the name of the template file to use without the extension
  • context this will be passed to the view engine as the context data to render the variables with.
// example
context: {
  name: `Bob Ross`,
  url: `https://mjml.io/try-it-live`,
}
<!-- MJML Example-->
<mj-text>Hello {{name}}, <a href="{{url}}">Click here</a></mj-text>

Example Usage

let nodemailer = require(`nodemailer`)
let mjml = require(`../lib`)
let htmlToText = require(`nodemailer-html-to-text`).htmlToText

// Setup local version of mailcatcher
let transporter = nodemailer.createTransport({
  host: '127.0.0.1',
  port: 1025,
})

// Compile the mjml template to html with parsing the mustache variables
transporter.use(`compile`, mjml({
	viewPath: `${__dirname}/views`
}))

// Convert the html to text to populate the text email part
transporter.use(`compile`, htmlToText())

// Setup test send options
const options = {
  context: {
    name: `Bob Ross`,
    url: `https://mjml.io/try-it-live`,
  },
  from: `from@email.com`,
  to: `to@email.com`,
  subject: `Verify your email address`,
  template: `example`,
}
console.log("Sending options", options)

// Send the email
new Promise((resolve, reject) => {
  transporter.sendMail(options, function(error, info){
      if (error) {
        return reject(error)
      }
      resolve(info)
  })
})

Package Sidebar

Install

npm i nodemailer-mjml-mustache

Weekly Downloads

414

Version

0.4.1

License

MIT

Unpacked Size

9.96 kB

Total Files

7

Last publish

Collaborators

  • etiennemarais