Mustache-Mailer
A mustache-template-backed mailer. Built with handlebars, and nodemailer, inspired by ActionMailer.
Usage
- create a templates directory with the following naming convention:
foo.text.hbs
, for text email templates.foo.meta.hbs
, meta information in JSON format, e.g.,subject
.foo.html.hbs
, for html email templates.
- instantiate
MustacheMailer
with:
transport
: the transport module you wish to use, e.g., SES.templateDir
: the path to the template directory.
var mm = transport: accessKeyId: 'AWSACCESSKEY' secretAccessKey: 'AWS/Secret/key' templateDir: './mail-templates';
- use the
MessageMailer
instance to grab a template:
- if it sees an
html
template and atext
template, both will be sent. - any variable passed to
sendMail
are sent tonodemailer
, and to the mustache templates.
var msg = mm
tokenFacilitator
Plugin
It often arises that you'd like to toss a token inside an email, e.g., click this confirmation link to change your password.
For generating these tokens, MustacheMailer allows you to install a
tokenFacilitator
plugin:
When instantiating MustacheMailer:
var mm = transport: mock templateDir: path // a fake token facilitator. tokenFacilitator: { ; } ;
In the template
http://example.com/{{{tokenHelper name=name email=email}}}
- the arguments will be stored as
key
,value
pairs in data.