postage

Node.JS PostageApp API Client

npm install postage
2 downloads in the last day
2 downloads in the last week
4 downloads in the last month

postage

node.js module for PostageApp API Client


Installation:

$ npm install postage

Sending a Message


var postage = require('postage')('YOUR API KEY');

var options = { 
  recipients: 'email@address.com',
  subject: 'Subject Line',
  from: 'sender@example.org',
  content: {
    'text/html': '<h1>Some awesome content</h1>',
    'text/plain': 'Plain text goes here (if any)'
  }
};

postage.send(options, function callback(error, msg) {
  if (error) {
    console.error(error);
  } else {
    console.log(message);
  }
});

alternatively you can use templates (which are setup on postageapp.com)


var options = {
  recipients: 'email@address.com',
  subject: 'Subject Line',
  from: 'sender@example.org",
  templates: 'my_template',
  variables: {
    variable1: 'value',
    variable2: 'value2
  }
};

sending the message to multiple recipients


var options = {
  recipients: ['email@address.com', 'email2@address2.com']
};

sending the message to multiple recipients with variable data


recipients: {
  "email@example.com": {
    'variable': 'Value'
  }, 
  "email2@example.com": {
    'variable': 'Value2'
  }
};

Response will look like

{ "response" : {
  "uid" : “ResponseUID”,
    "status" : “ok”
  },
  "data" : {
    "message” : {
      "id" : "DataID"
    }
  }
}

Retrieving a Message Recept by UID


var postage = require('postage')(key);

postage.get_message_receipt('some-uid-key', function(error, message) {
  if (error) {
    console.error(error);
  } else {
    console.log(message);
  }
});

response

{ "response" : {
    "uid" : "uid_of_the_message",
    "status" : "ok"
  },
  "data" : {
    "message" : {
      "id" : "1234567890"
    }
  }
}

Fetching Account Info


var postage = require('postage')(key);

postage.get_account_info(function(error, message) {
  if (error) {
    console.error(error);
  } else {
    console.log(message);
  }
});

response

{"response":
  {
    "status":"ok",
    "uid":1333844159296
  },
  "data":{
    "account":{
      ...
    }
  }
}

Get Method List (List Available API Methods)


var postage = require('postage')(key);

postage.get_method_list(function(error, message) {
  if (error) {
    console.error(error);
  } else {
    console.log(message);
  }
});

response

{ response: { 
    status: 'ok',
    uid: null
  },
  data: { 
    methods: 'get_account_info, get_message_receipt, get_method_list, get_metrics, get_project_info, message_delivery_status, message_status, send_message, test_mail_server, test_recipient'
  } 
}

Get Project Info


var postage = require('postage')(key);

postage.get_project_info(function(error, message) {
  if (error) {
    console.error(error);
  } else {
    console.log(message);
  }
});

response

{ "response" : {
    "status" : "ok",
    "uid" : nil
  },
  "data" : {
    "project" : {
      "name" : "Project Name",
      "url" : "account-name.postageapp.com/projects/12345",
      "transmissions" : {
        "today" : "12345",
        "this_month" : "123456",
        "overall" : "1234567"
      },
      "users" : {
        "user_1@example.com" : "User Name 1",
        "user_2@example.com" : "User Name 2"
      }
    }
  }
}
npm loves you