How to send an Email with SparkPost and Node.js

How to send an Email with SparkPost and Node.js

This article will guide you to sending email using the SparkPost API and SparkPost transport for Nodemailer on your Node.js project

This article will guide you to sending email using the SparkPost package and SparkPost transport for Nodemailer

Before using this library, you must have:

  • A shiny new SparkPost Account, sign up for a new account or login to SparkPost
  • A valid SparkPost API Key. Check out our Support Center for information on how to create API keys

Send An Email "Hello World" Example with SparkPost APIs

Below is an example of how to send a simple email. Sending an email is known as a transmission. By using the send method on the transmissions service that's available from the SparkPost object you instantiate, you can pass in an object with all the transmission attributes relevant to the email being sent. The send method will return a promise that will let you know if the email was sent successful and if not information about the error that occurred. If a callback is passed, it will be executed.


npm install sparkpost

Create send.js

const SparkPost = require('sparkpost');
const client = new SparkPost('<YOUR API KEY>');

// If you have a SparkPost EU account you will need to pass a different `origin` via the options parameter:
// const euClient = new SparkPost('<YOUR API KEY>', { origin: '' });

    options: {
      sandbox: true
    content: {
      from: '[email protected]',
      subject: 'Hello, World!',
      html:'<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>'
    recipients: [
      {address: '<YOUR EMAIL ADDRESS>'}
  .then(data => {
    console.log('Woohoo! You just sent your first mailing!');
  .catch(err => {
    console.log('Whoops! Something went wrong');

Send An Email "Hello World" Example with SparkPost transport for Nodemailer


npm install nodemailer nodemailer-sparkpost-transport
var nodemailer = require('nodemailer');
var sparkPostTransport = require('nodemailer-sparkpost-transport');
var transporter = nodemailer.createTransport(sparkPostTransport(options));

  from: '[email protected]',
  to: '[email protected]',
  subject: 'Hello World',
  html: '<html><body><p>Testing SparkPost - the world\'s most awesomest email service!</p></body></html>'
}, function(err, info) {
  if (err) {
    console.log('Error: ' + err);
  } else {
    console.log('Success: ' + info);

options defines connection default transmission properties

  • sparkPostApiKey - SparkPost API Key. If not provided, it will use the SPARKPOST_API_KEY env var.
  • endpoint - The endpoint to use for the SparkPost API requests. If you have a SparkPost EU account, set this to (optional)
  • campaign_id - Name of the campaign (optional)* metadata - Transmission level metadata containing key/value pairs (optional)* options - JSON object in which transmission options are defined (optional)
  • substitution_data - Key/value pairs that are provided to the substitution engine (optional)

Additional Options The SparkPost Nodemailer transport also supports a few SparkPost-specific sendMail() options in both the transport constructor and the sendMail() method.

Note: sendMail() options override their constructor counterparts:

campaign_id - Overrides for constructor option metadata - Override for constructor option options - Override for constructor option substitution_data - Override for constructor option

node nodejs sparkpost email

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

How to Hire Node.js Developers And How Much Does It Cost?

A Guide to Hire Node.js Developers who can help you create fast and efficient web applications. Also, know how much does it cost to hire Node.js Developers.

Hire NodeJs Developer

Looking to build dynamic, extensively featured, and full-fledged web applications? **[Hire NodeJs Developer]( "Hire NodeJs Developer")** to create a real-time, faster, and scalable...

Top Node.js Development Companies and Expert NodeJS Developers

A thoroughly researched list of top NodeJS development companies with ratings & reviews to help hire the best Node.JS developers who provide development services and solutions across the world. List of Leading Node.js development Service Providers...

Hire Nodejs Developer

Looking to **hire NodeJS Developer**[]( "") to build a perfect back-end to your website or...

Node canvas is a Cairo backed Canvas implementation for NodeJS.

node-canvas is a Cairo-backed Canvas implementation for Node.js.