Een gids voor het gebruik van SparkPost met Node.js

Een gids voor het gebruik van SparkPost met Node.js

Een gids voor het gebruik van SparkPost met Node.js

Sep 1, 2017

Gepubliceerd door

Gepubliceerd door

Bird

Bird

-

Categorie:

Categorie:

E-mail

E-mail

Ready to see Bird
in action?

Ready to see Bird
in action?

A Guide to Using SparkPost with Node.js

Inleiding tot Node.js

As a Developer Advocate for SparkPost, I write a lot of sample applications. My background is mostly front-end development, therefore my strongest language is JavaScript. Thanks to Node.js, I’m a decent backend developer as well. Does this mean I’m a full stack developer now? Anyway, it was important for me that we had an awesome SparkPost client library for Node.js. So, I dove right in and became a contributor (zelfs voordat ik was ingehuurd).

Laat me je helpen om aan de slag te gaan met het versturen van e-mails met SparkPost op je Node.js project.


Installing & Setup

I’m going to assume that you have Node.js geïnstalleerd. Because we follow the Node.js Lange Termijn Ondersteuning (LTS) schema, you’ll need to be running version 4 or higher. You can see which version you’re running using the `node –version` command in your terminal window.

Laten we een nieuw npm-project aanmaken. Als je er al een hebt, kun je dit deel overslaan.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

Dit maakt een nieuw project aan en accepteert alle standaardinstellingen. U kunt ook `npm init` uitvoeren en alle vragen beantwoorden.

Now we can install node-sparkpost:

> npm install sparkpost --save

Eenmaal geïnstalleerd kun je een instantie van de SparkPost klasse importeren en aanmaken:

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

It’s good practice to avoid putting your API key in code. We highly recommend storing it outside your code, so we set up the client library to detect the SPARKPOST_API_KEY  environment variable.


E-mail verzenden

Nu je een SparkPost instantie hebt, ben je klaar om te verzenden. Er zijn nogal wat mogelijkheden om te verzenden, maar laten we beginnen met een eenvoudig voorbeeld. Dit is hoe je een email stuurt naar een enkele ontvanger, met inline content:

client.transmissions.send({ content: { from: 'test@your-sending-domain.com', subject: 'Hello from node-sparkpost', html: '<p>Hello world</p>' }, recipients: [ {address: 'someone@somedomain.com'} ] }) .then(data => { console.log('Woohoo! You just sent your first mailing!') console.log(data) }) .catch(err => { console.log('Whoops! Something went wrong') console.log(err) })

Note: This example uses Promises, but don’t worry. We also ondersteunen callback functies.

There are more options available with transmissions, including specifying stored templates or recipient lists, cc and bcc, adding attachments, specifying a campaign, using substitution data, and much more. Check out the examples, docs voor de bron transmissies, and the Transmissies API documentatie for more info.


Bonus: E-mail versturen met Nodemailer

Nodemailer is a popular library for Node.js that make sending email “easy as cake.” For those of you choosing to use this library, we created a SparkPost transport voor Nodemailer. You’ll need to install the nodemailer  and nodemailer-sparkpost-transport packages in your project.

> npm install nodemailer nodemailer-sparkpost-transport --save

Nu kun je een transportinstantie van nodemailer aanmaken:

const nodemailer = require('nodemailer') const sparkPostTransport = require('nodemailer-sparkpost-transport') const transporter = nodemailer.createTransport(sparkPostTransport({ 'sparkPostApiKey': process.env.SPARKPOST_API_KEY }))

 

Merk op dat ik de API sleutel uit een omgevingsvariabele lees. Het blijft een goede gewoonte om die nooit rechtstreeks in je code te zetten.

There are several options that can passed into the SparkPost transport, like campaign id and whether or not the message is transactional. Take a look aan de README.md for all the options.

Hier zie je hoe je hetzelfde bericht hierboven verstuurt met Nodemailer:

transporter.sendMail({ from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Hello from nodemailer-sparkpost-transport', html: '<p>Hello world</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })


Dubbele bonus: e-mail versturen met notif.me

We all know that email is king of communication but sometimes you want to be able to reach people via multiple channels. notif.me is a Node.js library for sending all kinds of transactional messages. Whether you want to send an email, sms, push, or webpushes, you can do it with ease. It also has built in fall and round robin strategies for multiple providers. We recently worked with the creators to build a SparkPost provider. You’ll need to install the `notifme-sdk` package in your project.

> npm install notifme-sdk --save

Je kunt nu een notifme instantie aanmaken met de SparkPost provider:

const NotifmeSdk = require('notifme-sdk').default const notifmeSdk = new NotifmeSdk({ channels: { email: { providers: [{ type: 'sparkpost', apiKey: process.env.SPARKPOST_API_KEY, }] } } })

Nogmaals, we halen de API Key uit een omgevingsvariabele. We hebben het drie keer gezegd - zo belangrijk is het. 🙂

Laten we nu hetzelfde voorbeeld herhalen, deze keer met notif.me:

notifmeSdk.send({ email: { from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Hello from the SparkPost notif.me provider', html: '<p>Hello world</p>' } }).then(console.log)

It’s really easy to use and I recommend looking aan de andere kenmerken.

Er is geen verkeerde manier om te Node

Als het gaat om het verzenden van e-mail met Node.js, heb je veel opties. We hebben hard gewerkt om het zo pijnloos mogelijk te maken.

Your new standard in Marketing, Pay & Sales. It's Bird

De right message -> naar de right person -> at the right time.

Your new standard in Marketing, Pay & Sales. It's Bird

De right message -> naar de right person -> at the right time.