Een gids voor het gebruik van SparkPost met Node.js

Bird

1 sep 2017

E-mail

1 min read

Een gids voor het gebruik van SparkPost met Node.js

Belangrijkste punten

    • SparkPost biedt meerdere manieren om e-mails te verzenden vanuit Node.js — directe API-aanroepen, Nodemailer transport, en notif.me multi-channel levering.

    • Sla API-sleutels op in omgevingsvariabelen, codeer ze nooit hard. SparkPost detecteert automatisch SPARKPOST_API_KEY.

    • De Transmissions API biedt krachtige flexibiliteit: sjablonen, vervangingsdata, bijlagen en campagne-tagging.

    • Nodemailer-gebruikers kunnen onmiddellijk overstappen naar SparkPost met het officiële transport — geen grote herschrijvingen van de code nodig.

    • notif.me biedt multi-channel levering (email, SMS, push) met fallback-strategieën, waardoor het ideaal is voor robuuste notificatiesystemen.

    • Node.js past natuurlijk bij moderne cloud-e-mail-API's en serverloze workflows, waardoor het eenvoudig is om e-mailmogelijkheden direct in uw app te integreren.

Q&A Hoogtepunten

  • Wat is de snelste manier om te beginnen met het verzenden van e-mails met SparkPost in Node.js?

    Installeer het sparkpost pakket, initialiseer de client met een API-sleutel (bij voorkeur via omgevingsvariabelen), en roep de transmissions.send() methode aan met ontvangers + inhoud.

  • Moet ik mijn SparkPost API key in code opslaan?

    Nee — en dat zou je niet moeten doen. Gebruik omgevingsvariabelen. De client leest automatisch SPARKPOST_API_KEY.

  • Kan ik e-mails verzenden met behulp van templates in plaats van inline HTML?

    Ja. De Transmissions API ondersteunt opgeslagen templates, substitutiegegevens, ontvangerlijsten, bijlagen, cc/bcc en meer.

  • Wat als I al Nodemailer gebruik?

    Je bent gedekt — SparkPost wordt geleverd met een officiële Nodemailer-transport. Configureer het gewoon met je API-sleutel en gebruik Nodemailer zoals gewoonlijk.

  • Kan SparkPost samenwerken met multi-channel messaging systemen?

    Ja. Bibliotheken zoals notifme-sdk maken e-mail, SMS, push en webpush mogelijk met terugvallogica, en ze bevatten een SparkPost-provider.

  • Is Node.js geschikt voor serverloze emailworkflows?

    Absoluut. Het past goed bij Cloud Functions, Lambdas en elke serverloze omgeving die gebruikmaakt van de SparkPost API voor gebeurtenisgestuurde e-mails.

  • Wie zou de Transmissions API moeten gebruiken in vergelijking met Nodemailer of notif.me?

    • Gebruik Transmissions API wanneer je volledige controle en prestaties wilt.

    • Gebruik Nodemailer als je project het al gebruikt en je een snelle integratie wilt.

    • Gebruik notif.me voor multi-channel messaging of fallback leveringsstrategieën.

  • Wat is de belangrijkste best practice bij het verzenden van e-mails vanuit Node?

    Behandel uw API-sleutel als gevoelig — alleen omgevingsvariabelen, nooit naar code commiteren.

Als een Developer Advocate voor SparkPost schrijf ik veel voorbeeldapplicaties. Mijn achtergrond ligt vooral in front-end ontwikkeling, dus mijn sterkste taal is JavaScript. Dankzij Node.js ben ik ook een behoorlijke backend ontwikkelaar. Betekent dit dat ik nu een full stack ontwikkelaar ben?

Intro to Node.js

Als een Developer Advocate voor SparkPost schrijf ik veel voorbeeldapplicaties. Mijn achtergrond is voornamelijk front-end ontwikkeling, daarom is mijn sterkste taal JavaScript. Dankzij Node.js ben ik ook een redelijke backend-ontwikkelaar. Over voorbeeldapplicaties gesproken, Node.js werkt ook geweldig voor het bouwen van serverloze functies die integreren met Flow Builder - zoals onze Google Cloud Functions and Vision API integration guide. Betekent dit dat ik nu een full stack ontwikkelaar ben? In ieder geval was het belangrijk voor mij dat we een geweldige SparkPost-clientbibliotheek hadden voor Node.js. Dus, ik dook er gelijk in en werd een bijdrager (zelfs voordat ik werd aangenomen).

Laat mij je helpen met het starten met het verzenden van e-mails met SparkPost in je Node.js-project. Voordat je in de specifieke details van Node.js duikt, wil je misschien de basisprincipes van e-mail APIs in cloud infrastructuur begrijpen en hoe ze passen in moderne applicatieontwikkeling.

Installatie & Setup

Ik ga ervan uit dat je Node.js geïnstalleerd hebt. Omdat we het Node.js Long Term Support (LTS) schema volgen, moet je versie 4 of hoger draaien. Je kunt zien welke versie je draait met behulp van de `node –version` commando in je terminalvenster.

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

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

Dit zal een nieuw project creëren en alle standaardinstellingen accepteren. Je kunt ook `npm init` uitvoeren en alle vragen beantwoorden.

Nu kunnen we node-sparkpost installeren:

> npm install sparkpost --save

Eenmaal geïnstalleerd kun je een instantie van de SparkPost klasse importeren en creëren:

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

Het is een goede gewoonte om je API-sleutel niet in de code te plaatsen. We raden ten zeerste aan om het buiten je code op te slaan, dus we hebben de clientbibliotheek ingesteld om de SPARKPOST_API_KEY  omgevingsvariabele te detecteren.

Ik ga ervan uit dat je Node.js geïnstalleerd hebt. Omdat we het Node.js Long Term Support (LTS) schema volgen, moet je versie 4 of hoger draaien. Je kunt zien welke versie je draait met behulp van de `node –version` commando in je terminalvenster.

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

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

Dit zal een nieuw project creëren en alle standaardinstellingen accepteren. Je kunt ook `npm init` uitvoeren en alle vragen beantwoorden.

Nu kunnen we node-sparkpost installeren:

> npm install sparkpost --save

Eenmaal geïnstalleerd kun je een instantie van de SparkPost klasse importeren en creëren:

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

Het is een goede gewoonte om je API-sleutel niet in de code te plaatsen. We raden ten zeerste aan om het buiten je code op te slaan, dus we hebben de clientbibliotheek ingesteld om de SPARKPOST_API_KEY  omgevingsvariabele te detecteren.

Ik ga ervan uit dat je Node.js geïnstalleerd hebt. Omdat we het Node.js Long Term Support (LTS) schema volgen, moet je versie 4 of hoger draaien. Je kunt zien welke versie je draait met behulp van de `node –version` commando in je terminalvenster.

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

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

Dit zal een nieuw project creëren en alle standaardinstellingen accepteren. Je kunt ook `npm init` uitvoeren en alle vragen beantwoorden.

Nu kunnen we node-sparkpost installeren:

> npm install sparkpost --save

Eenmaal geïnstalleerd kun je een instantie van de SparkPost klasse importeren en creëren:

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

Het is een goede gewoonte om je API-sleutel niet in de code te plaatsen. We raden ten zeerste aan om het buiten je code op te slaan, dus we hebben de clientbibliotheek ingesteld om de SPARKPOST_API_KEY  omgevingsvariabele te detecteren.

E-mail verzenden

Nu je een SparkPost-instance hebt, ben je klaar om te verzenden. Er zijn heel wat opties beschikbaar voor het verzenden, maar laten we beginnen met een eenvoudig voorbeeld. Hier is hoe je een e-mail verstuurt naar een enkele ontvanger, waarbij inline inhoud wordt gespecificeerd:

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)
})

Opmerking: Dit voorbeeld gebruikt Promises, maar maak je geen zorgen. We ondersteunen ook callback-functies.

Voor bedrijfsapplicaties die uitgebreide e-mailbeheer vereisen, moeten ontwikkelaars ook overwegen e-mailarchiveringssystemen te bouwen om opslag- en nalevingsvereisten af te handelen.

Er zijn meer opties beschikbaar bij transmissies, inclusief het specificeren van opgeslagen sjablonen of ontvangerlijsten, cc en bcc, bijlagen toevoegen, een campagne specificeren, gebruik van substitutiegegevens en nog veel meer. Bekijk de voorbeelden, documentatie voor de Transmissions-bron, en de Transmissions API-documentatie voor meer info.

Bonus: E-mail verzenden met Nodemailer

Nodemailer is een populaire bibliotheek voor Node.js die het verzenden van e-mails "net zo eenvoudig als taart" maakt. Voor degenen onder u die ervoor kiezen om deze bibliotheek te gebruiken, hebben we een SparkPost-transport voor Nodemailer gemaakt. U moet de pakketten nodemailer en nodemailer-sparkpost-transport in uw project installeren.

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

Nu kunt u een nodemailer-transportinstantie maken:

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

Let op hoe ik de API-sleutel lees vanuit een omgevingsvariabele. Het is nog steeds een best practice om deze nooit direct in uw code op te nemen.

Er zijn verschillende opties die in het SparkPost-transport kunnen worden opgenomen, zoals campagne-id en of het bericht transactioneel is of niet. Bekijk de README.md voor alle opties.

Hier is hoe u hetzelfde bericht hierboven zou verzenden 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 verzenden met notif.me

We weten allemaal dat e-mail koning is in communicatie, maar soms wil je mensen via meerdere kanalen kunnen bereiken. notif.me is een Node.js-bibliotheek voor het verzenden van allerlei transactionele berichten. Of je nu een e-mail, sms, push of webpushes wilt verzenden, je kunt het moeiteloos doen. Het heeft ook ingebouwde fall- en round-robin-strategieën voor meerdere providers. We hebben onlangs samengewerkt met de makers om een SparkPost-provider te bouwen. Je moet het `notifme-sdk`-pakket in je project installeren.

> npm install notifme-sdk --save

Je kunt nu een notifme-instance maken 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
        }
      ]
    }
  }
});

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

Laten we nu hetzelfde voorbeeld herhalen, deze keer met gebruik van 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)
.catch(console.error);

Het is echt eenvoudig te gebruiken en ik raad aan om naar de andere functies te kijken.

Er is geen foute manier om te Node

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

Andere nieuws

Lees meer uit deze categorie

A person is standing at a desk while typing on a laptop.

Het complete AI-native platform dat met uw bedrijf meegroeit.

A person is standing at a desk while typing on a laptop.

Het complete AI-native platform dat met uw bedrijf meegroeit.