mustache-mailer

    5.0.0 • Public • Published

    Mustache-Mailer

    Build Status Coverage Status

    A mustache-template-backed mailer. Built with handlebars, and nodemailer, inspired by ActionMailer.

    Usage

    1. 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.
    1. instantiate MustacheMailer with:
    • transport: the transport module you wish to use, e.g., SES.
    • templateDir: the path to the template directory.
    var mm = new MustacheMailer({
      transport: require('nodemailer-ses-transport')({
          accessKeyId: 'AWSACCESSKEY',
          secretAccessKey: 'AWS/Secret/key'
      }),
      templateDir: './mail-templates'
    });
    1. use the MessageMailer instance to grab a template:
    • if it sees an html template and a text template, both will be sent.
    • any variable passed to sendMail are sent to nodemailer, and to the mustache templates.
    var msg = mm.message('confirmation', function(err, msg) {
      msg.sendMail({
        to: 'bencoe@gmail.com',
        name: 'Ben',
        id: 'adfasdfadsfasdf'
      });
    }

    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 = new MustacheMailer({
      transport: mock,
      templateDir: path.resolve(__dirname, './fixtures'),
      // a fake token facilitator.
      tokenFacilitator: {
        generate: function(data, cb) {
          setTimeout(function() {
            data.email.should.eql('zeke@example.com');
            data.name.should.eql('Zeke');
            return cb(null, parseInt(Math.random() * 256));
          }, 20);
        }
      }
    });

    In the template

    http://example.com/{{{tokenHelper name=name email=email}}}
    • the arguments will be stored as key, value pairs in data.

    Install

    npm i mustache-mailer

    DownloadsWeekly Downloads

    19

    Version

    5.0.0

    License

    ISC

    Last publish

    Collaborators

    • kmkumaran
    • fauldsh
    • trevrosen
    • vipuljain
    • bhaveshbhati
    • devyani-chowdhury2
    • ben-1997
    • raashidanwar
    • ruslan-bikkinin
    • makhmudjon-inadullaev
    • isaacs
    • fritzy
    • npm
    • kirupakaranh
    • npmci
    • 20shivangi
    • akshayagh
    • nishantms
    • prabum3
    • ghostdevhv
    • s121pradhan
    • amit-avit
    • saquibkhan
    • nehsharmms
    • dhilipdkkumar
    • sandeepmeduru
    • singit
    • lisayu
    • neeldani
    • arjgupta
    • ashishonce
    • nlf
    • asranja
    • phanikm
    • andrialexandrou
    • thedave42
    • gar
    • darcyclarke
    • ruyadorno
    • mangwana
    • npm-sre-readonly
    • npm-sre-write
    • robdnpm
    • john7doe
    • soph2k
    • lumaxis
    • meijin007
    • sapieneptus
    • jacobe
    • gordey4doronin
    • hilli
    • christoflemke
    • maxxkrakoa
    • owenniblock
    • olefriis
    • ethomson
    • baj-
    • stoneman
    • radiantspace
    • smeirsha
    • jmoody
    • t-dekell
    • t-dedim
    • mylesborins
    • ndorfman
    • npm-qa
    • npm-qa-tfa1
    • npm-qa-tfa2
    • jar349
    • trevorsg
    • rzhade3
    • seryozha95
    • royetadmor
    • synse
    • fabyus
    • lukekarrys
    • levenleven
    • timaramazanov
    • anurbol
    • ceejbot
    • rockbot
    • bcoe
    • nexdrew