Code Monkey home page Code Monkey logo

postmark.js's Introduction

NOTICE:

Wildbit (operators of postmarkapp.com) currently maintains the Postmark.js module. Please head over there for the most up to date version.

Postmark.js

Send emails with the greatest of ease! Now your node.js application can send emails through Postmark.

Build Status

Install

Installing postmark is super simple:

npm install postmark

Sending an Email:

To send your first email, all you need to do is:

var postmark = require("postmark");
var client = new postmark.Client("<server key>");

client.sendEmail({
    "From": "[email protected]", 
    "To": "[email protected]", 
    "Subject": "Test", 
    "TextBody": "Test Message"
});

Replace with the server key provided by Postmark and you are good to go!

Your message must be provided in the format specified in the Postmark API and will be verified. The member names of message payloads are case-sensitive, and messages not matching the documented format will not be accepted by the API.

All client methods accept a callback as the their last parameter, following the normal node.js callback convention:

callback(error, result){...} 

To send attachments with the email, use the following format may be used:

var postmark = require("postmark");
var client = new postmark.Client("<server key>");

client.sendEmail({
    "From": "[email protected]", 
    "To": "[email protected]", 
    "Subject": "Test", 
    "TextBody": "Test Message",
    "Attachments": [{
      "Content": File.readFileSync("./unicorns.jpg").toString('base64'),
      "Name": "PrettyUnicorn.jpg",
      "ContentType": "image/jpeg"
    }]
}, function(error, success) {
    if(error) {
        console.error("Unable to send via postmark: " + error.message);
        return;
    }
    console.info("Sent to postmark for delivery")
});

Sending a Batch of Messages

The Postmark API provides functionality for sending batches of emails with a single command, rather than issuing separate API calls for each message. You may access this feature by calling Client.sendEmailBatch(...), which behaves similarly to postmark.sendEmail(...) except that the first parameter is an array of messages formatted in the same manner as outlined above:

For example:

var postmark = require("postmark");
var client = new postmark.Client("<server key>");

var messages = [
    {
        "From": "[email protected]",
        "To": "[email protected]",
        "Subject": "Message #1",
        "TextBody": "This is email number 1."
    },
    {
        "From": "[email protected]",
        "To": "[email protected]",
        "Subject": "Message #2",
        "TextBody": "This is email number 2."
    }
];

postmark.sendEmailBatch(messages, function (error, batchResults) {
    if (error) {
        console.error("Unable to send via postmark: " + error.message);
        return;
    }
    console.info("Messages sent to postmark");
});

The Postmark API will return an array of statuses, one for each message sent. You may iterate over the batchResults for information about each sent message. For further details, please see the Postmark Batch API.

postmark.js's People

Contributors

atinux avatar benburwell avatar geek0x23 avatar mblackshaw avatar codesplicer avatar g00d-guy avatar alexshepard avatar benw avatar kooba avatar canxerian avatar mathisonian avatar ryankirkman avatar trupin avatar francescorubini avatar

Stargazers

Matthias Weston avatar Vince Fulco--Bighire.tools avatar Rafael Lüder avatar Matt Chiaro avatar Kumar Deepanshu avatar Abdulkareem Ojerinde avatar Sireus avatar  avatar Rocktim avatar Julian Christian Anderson avatar Ognjen Gatalo avatar Gabor Dolla avatar Marko Roganovic avatar Eirik L. Vullum avatar Jasmin Parent avatar Robert Alben avatar Martin Eboh avatar Rupa Sharma avatar Jared Neems avatar Max Grom avatar gregory nicholas avatar Rothana Choun avatar Marcela Güiza avatar Gerhard Preuss avatar Zeb Pykosz avatar Denis Zhbankov avatar James Byrne  avatar Carlos Cárcamo avatar denistsoi avatar Swissrift avatar Chad avatar Angus H. avatar Chris Hart avatar Philip Edwards avatar wentout avatar Jerzerak avatar Iljoong Hwang avatar Morgan avatar Stephen Ginn avatar nuin avatar Max Schönberger avatar Brad Pillow avatar Michael Polino avatar tom zhou avatar Parker avatar Jelle Kralt avatar Dominik Burgdörfer avatar Florian Klenk avatar Ali Zahid avatar BJR Matos avatar Konstantinos Margaritis avatar Long Chavous avatar Sayanee Basu avatar Paulo McNally avatar Pete Ashworth avatar Travis Webb avatar rowan avatar Patrick de Lanauze avatar Zachary Mayberry avatar James Nesfield avatar Chris Houghton avatar Sebastian Schumann avatar Eric Lebetsamer avatar caolvchong avatar  avatar  avatar Harald Haesler avatar Leslie Owusu-Appiah avatar David Resseguie avatar Wojtek Gawroński avatar Shern Shiou Tan avatar  avatar Maxime Poulin avatar Thomas Geraghty avatar ᴀɴᴛᴏɴ ɴᴏᴠᴏᴊɪʟᴏᴠ avatar Sharad K avatar Connor Walsh avatar Mark Stosberg avatar Darcy Murphy avatar JT5D avatar Dylan Turner avatar Matt Miller avatar Dominik Lessel avatar Code avatar Naoki Shibayama avatar Alexey Okhrimenko avatar Sebastian Brocher avatar Ian Walter avatar Aseem Kishore avatar Gilbert avatar Dustin Martin avatar Neil Jagdish Patel avatar Jeremy Peterson avatar  avatar Guido avatar matthiasg avatar Łukasz Bondarewicz avatar Jose Carlos Pajuelo  avatar Mike Slattery avatar Travis Good avatar

Watchers

Chris Williams avatar James Cloos avatar  avatar

postmark.js's Issues

.send() callback called multiple times

Hi, thanks for the library!

I'm occasionally having issues with the callback to the send function multiple times. This is a problem because it breaks, for example, async.parallel().

I'm running version 0.2.5. To reproduce send an email with an unauthorized sending address, this will call the callback with error

{ status: 422,
  message: 'Sender signature not defined for From address.',
  code: 400 }

but then will also call the callback with

{ status: 404,
  message: 'Unsupported Request Method and Protocol',
  code: -1 }

Error after upgrading to 0.1.7

Since upgrading to 0.1.7, I'm now getting errors:

status=422, message="Received invalid JSON input."

Seems to be a regression of some sort. Downgrading to 0.1.6 for now.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.