node-mailpress
Wiring up of node-mailer to templates. Plop in the module, insert configs, and some template files, and you're ready to churn out some emails! Comes packaged with default naming expectations for quickly making mailers. For example, a welcome.js
mailer will have template files named mailer.html
and mailer.txt
in the templateDir
. You can override such expectations when creating a mailer.
Requirements
node-config
: All our projects currently use this to configure our apps. Apologies if it doesn't fit in with your project. Easy enough to remove, if there's need.mustache
: Currently, this only supports mustache templates.
Usage:
npm install --save mailpress
- add
mailer
config section to yournode-config
—an example for Amazon SES is below. - create your first mailer module
- create corresponding templates in the templateDir you have set (or in
server/views/mail
if you're going by the package defaults) - require in your mailer and call
mailer.sendMail(templateLocals, [configs])
on it
Config Example
mailer: templateDir: "relative/to/project/root" transport: "SMTP" transportOpts: service: "SES" auth: user: "<your user>" pass: "<your pass>" }
Mailer Example
// welcome.jsvar Mailpress = ; var defaults = // to manually specify which template files to use for a mailer: // (this changes the mailer to use bob.html and bob.txt in the templateDir) // templateBaseName: 'bob', // to override default extension expectations for templates: // (to test the text-only version, for example) // templateExtensions: {text: '.txt'}, subject: 'Default subject line' from: 'noreply@someemail.com'; moduleexports = defaults;
and to use it:
// in some other modulevar myMailer = ;myMailer;
and here's a set of corresponding mustache template examples:
NOTE: The base name of template files must be same as the mailer base name, unless you override
it in the mailer defaults. So, for welcome.js
, you would name them welcome.html
and welcome.txt
<!-- these two are placed in 'templateDir' directory specified in the config -- e.g. relative/to/root/welcome.html and relative/to/root/welcome.txt -->{{welcomeText}}Hey there {{name}}, this email is crafted for you.
{{welcomeText}}!
Hey there {{name}}, this email is crafted for you.