postal.io

1.1.1 • Public • Published

postal.io

A simple client for Postal

example

var Postal = require('postal.io');
 
var postal = new Postal({
  host : 'https://postal.example.com'
  , key : 'Vi7Sy5dsy35X8x3frTxlZYHn'
});
 
postal.send({
  to : ['recipient@other-domain.com']
  , cc : []
  , bcc : []
  , from : 'test@postal.example.com'
  , sender : null
  , subject : 'this is the subject'
  , tag : 'this is some tag'
  , reply_to : null
  , plain_body : 'text body'
  , html_body : '<h2>html body</h2'
  , attachments : [] //array of attachments
  , headers  : {} //hash
  , bounce : null //true/false
}, function (err, result) {
  /*... stuff ...*/
});

api

  • new Postal(opts) - constructor function
    • opts.host - string - the url to the postal server
    • opts.key - string - the API key from the postal server
  • postal.send(email, callback) - send an email
    • email - hash - see postal docs for options
    • callback(err, result) - function - callback function called when complete

events

Events are provided by event-pipeline. It is required to call the callback function in the event handler in order to continue processing the email. If an error is passed to the callback function, then the email will not be sent.

  • postal.on('send:before', handler)
    • handler(req, callback) - function - event handler function
  • postal.on('send:after', handler)
    • handler(req, callback) - function - event handler function

juice

Here is an example of using this module with juice.

var juice = require('juice');
var Postal = require('postal.io');
 
var postal = new Postal({ /* ... */ });
 
postal.on('send:before', function (req, cb) {
  if (!req.email.html_body) {
    return cb()
  }
 
  juice.juiceResources(req.email.html_body, {}, function (err, body) {
    req.email.html_body = body;
 
    return cb(err, req)
  });
});
 
postal.send(/* ... /*);

license

MIT

Package Sidebar

Install

npm i postal.io

Weekly Downloads

1

Version

1.1.1

License

MIT

Last publish

Collaborators

  • wankdanker