Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Postmark is an npm package that provides a simple and efficient way to send emails through the Postmark email service. It offers functionalities for sending transactional emails, managing email templates, and handling email events.
Send Email
This feature allows you to send a simple email using the Postmark service. You need to initialize the Postmark client with your server API token and then use the `sendEmail` method to send an email.
const postmark = require('postmark');
const client = new postmark.ServerClient('your-server-api-token');
client.sendEmail({
'From': 'sender@example.com',
'To': 'recipient@example.com',
'Subject': 'Test Email',
'TextBody': 'Hello from Postmark!'
});
Send Email with Template
This feature allows you to send an email using a predefined template. You need to specify the template ID and provide the template model data.
const postmark = require('postmark');
const client = new postmark.ServerClient('your-server-api-token');
client.sendEmailWithTemplate({
'From': 'sender@example.com',
'To': 'recipient@example.com',
'TemplateId': 123456,
'TemplateModel': {
'name': 'John Doe',
'product_name': 'Awesome Product'
}
});
Get Email Delivery Statistics
This feature allows you to retrieve email delivery statistics from Postmark. The `getDeliveryStatistics` method returns various metrics related to email delivery.
const postmark = require('postmark');
const client = new postmark.ServerClient('your-server-api-token');
client.getDeliveryStatistics().then((stats) => {
console.log(stats);
});
Nodemailer is a popular npm package for sending emails. Unlike Postmark, which is a service-specific client, Nodemailer is a general-purpose email sending library that can be used with various email services, including SMTP, AWS SES, and more.
SendGrid is another email service provider with an npm package for sending emails. Similar to Postmark, SendGrid offers functionalities for sending transactional emails, managing templates, and handling email events. However, SendGrid is known for its scalability and extensive API features.
Mailgun-js is an npm package for interacting with the Mailgun email service. It provides similar functionalities to Postmark, such as sending emails, managing templates, and handling events. Mailgun is known for its powerful email validation and analytics features.
Send emails with the greatest of ease! Now your node.js application can send emails through Postmark.
As the official node.js library for Postmark, postmark.js has support for the entire REST API. To see everything that is supported, have a look at the complete documentation, but the following information covers the most common sending cases...
Installing postmark
is super simple:
npm install postmark
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": "donotreply@example.com",
"To": "target@example.us",
"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": "donotreply@example.com",
"To": "target@example.us",
"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")
});
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@example.com",
"To": "recipient@example.com",
"Subject": "Message #1",
"TextBody": "This is email number 1."
},
{
"From": "email@example.com",
"To": "recipient@example.com",
"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.
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 Server
s, 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": "donotreply@example.com",
"TemplateId": <templateId>,
"To": "target@example.us",
"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!
FAQs
Official Node.js client library for the Postmark HTTP API - https://www.postmarkapp.com
The npm package postmark receives a total of 180,620 weekly downloads. As such, postmark popularity was classified as popular.
We found that postmark demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.