Git Product home page Git Product logo

postmark.js's Introduction

Postmark.js

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

Build Status

Complete documentation can be found here, but the following information should get you started...

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>");
var fs = require('fs');

client.sendEmail({
    "From": "[email protected]", 
    "To": "[email protected]", 
    "Subject": "Test", 
    "TextBody": "Test Message",
    "Attachments": [{
      // Reading synchronously here to condense code snippet:
      "Content": fs.readFileSync("./unicorns.jpg").toString('base64'),
      "Name": "PrettyUnicorn.jpg",
      "ContentType": "image/jpeg"
    }]
}, function(error, result) {
    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.

Sending an Email using a Template

The process of sending an email using a template in Postmark is similar to sending a single email, but there is a little bit of setup.

If you have not already created a template, login to the Postmark UI, navigate to one of your Servers, and add a template. Make note of the TemplateId, you will use that below. (You can also use our Template API to manage templates, if you wish to do so).

After you have created/selected a template to use, there are minor differences in the request payload for sending with a template..

First, you need to include the TemplateId, and TemplateModel (the values that you want to use in your template), Next, exclude the Subject, TextBody, and HtmlBody properties that you'd normally include when sending a non-templated email.

That's it! You're ready to send using a template stored with Postmark.

The following is a snippet showing a complete email with template request:

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

client.sendEmailWithTemplate({
    "From": "[email protected]", 
    "TemplateId": <templateId>,
    "To": "[email protected]", 
    "TemplateModel": {
        "Property1" : 1,
        "Property2" : "hello"
    }
});

As with all other Postmark client calls, you can include an optional callback function, allowing you to handle any errors, and to examine the API response.

Happy Sending!

postmark.js's People

Contributors

atheken avatar atinux avatar benburwell avatar geek0x23 avatar blissdev avatar mblackshaw avatar codesplicer avatar francescorubini avatar trupin avatar sirodoht avatar ryankirkman avatar mathisonian avatar canxerian avatar kooba avatar jhuggart avatar derekrushforth avatar benw avatar alexshepard avatar g00d-guy avatar

Watchers

Brian Del Vecchio avatar Rob Winchester avatar James Cloos avatar

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.