Un guide pour utiliser SparkPost avec Node.js

Oiseau

1 sept. 2017

Email

1 min read

Un guide pour utiliser SparkPost avec Node.js

Points Clés

    • SparkPost offre plusieurs façons d'envoyer des emails depuis Node.js — appels d'API directs, transport Nodemailer et livraison multi-canal avec notif.me.

    • Stockez les clés API dans des variables d'environnement, ne les codez jamais en dur. SparkPost détecte automatiquement SPARKPOST_API_KEY.

    • L'API Transmissions vous offre une flexibilité puissante : modèles, données de substitution, pièces jointes et marquage des campagnes.

    • Les utilisateurs de Nodemailer peuvent passer instantanément à SparkPost avec le transport officiel — pas besoin de réécrire le code de manière significative.

    • notif.me offre une livraison multi-canal (email, SMS, push) avec des stratégies de repli, ce qui le rend idéal pour des systèmes de notification robustes.

    • Node.js s'intègre naturellement avec les API email cloud modernes et les workflows serverless, facilitant l'intégration des capacités email directement dans votre application.

Points forts des Q&A

  • Quel est le moyen le plus rapide pour commencer à envoyer des emails avec SparkPost en Node.js ?

    Installez le paquet sparkpost, initialisez le client avec une clé API (de préférence via des variables d'environnement), et appelez la méthode transmissions.send() avec les destinataires + contenu.

  • Do I need to store my SparkPost API key in code?

    Non — et vous ne devriez pas. Utilisez des variables d'environnement. Le client lit automatiquement SPARKPOST_API_KEY.

  • Can I envoyer des emails using templates instead of inline HTML?

    Oui. L'API Transmissions prend en charge les modèles enregistrés, les données de substitution, les listes de destinataires, les pièces jointes, cc/bcc, et plus encore.

  • Que se passe-t-il si j'utilise déjà Nodemailer ?

    Vous êtes couvert — SparkPost est livré avec un transport officiel Nodemailer. Configurez-le simplement avec votre clé API et utilisez Nodemailer comme d'habitude.

  • Can SparkPost fonctionner avec des systèmes de messagerie multi-canaux ?

    Oui. Les bibliothèques comme notifme-sdk permettent l'envoi d'e-mails, SMS, notifications push, et webpush avec une logique de secours, et elles incluent un fournisseur SparkPost.

  • Node.js est-il adapté pour les flux de travail d'e-mail sans serveur ?

    Absolument. Il s'associe bien avec les Cloud Functions, les Lambdas, et tout environnement sans serveur utilisant l'API de SparkPost pour les e-mails déclenchés par des événements.

  • Qui devrait utiliser le Transmissions API vs. Nodemailer ou notif.me ?

    • Utilisez Transmissions API lorsque vous souhaitez un contrôle total et des performances optimales.

    • Utilisez Nodemailer si votre projet l'utilise déjà et que vous souhaitez une intégration rapide.

    • Utilisez notif.me pour la messagerie multi-canaux ou les stratégies de livraison de secours.

  • Quelle est la meilleure pratique lorsqu'on envoie des emails depuis Node ?

    Traitez votre clé API comme sensible — uniquement des variables d'environnement, ne la commettez jamais dans le code.

En tant qu'Advocate Développeur pour SparkPost, j'écris beaucoup d'applications de démonstration. Mon expérience est principalement en développement front-end, donc ma langue la plus forte est le JavaScript. Grâce à Node.js, je suis également un développeur back-end compétent. Cela signifie-t-il que je suis maintenant un développeur full stack ?

Introduction à Node.js

En tant que Developer Advocate pour SparkPost, j'écris beaucoup d'applications d'exemple. Mon expérience est principalement dans le développement front-end, donc ma langue la plus forte est JavaScript. Grâce à Node.js, je suis aussi un développeur backend décent. En parlant d'applications d'exemple, Node.js fonctionne également très bien pour construire des fonctions serverless qui s'intègrent avec Flow Builder - comme notre guide d'intégration Google Cloud Functions and Vision API. Cela signifie-t-il que je suis maintenant un développeur full stack? Quoi qu'il en soit, il était important pour moi que nous ayons une bibliothèque client SparkPost géniale pour Node.js. Alors, j'ai plongé dedans et suis devenu contributeur (même avant d'être embauché).

Permettez-moi de vous aider à démarrer l'envoi d'emails avec SparkPost sur votre projet Node.js. Avant de plonger dans les spécificités de Node.js, vous voudrez peut-être comprendre les fondamentaux des API d'email dans l'infrastructure cloud et comment ils s'intègrent dans le développement d'applications modernes.

En tant que Developer Advocate pour SparkPost, j'écris beaucoup d'applications d'exemple. Mon expérience est principalement dans le développement front-end, donc ma langue la plus forte est JavaScript. Grâce à Node.js, je suis aussi un développeur backend décent. En parlant d'applications d'exemple, Node.js fonctionne également très bien pour construire des fonctions serverless qui s'intègrent avec Flow Builder - comme notre guide d'intégration Google Cloud Functions and Vision API. Cela signifie-t-il que je suis maintenant un développeur full stack? Quoi qu'il en soit, il était important pour moi que nous ayons une bibliothèque client SparkPost géniale pour Node.js. Alors, j'ai plongé dedans et suis devenu contributeur (même avant d'être embauché).

Permettez-moi de vous aider à démarrer l'envoi d'emails avec SparkPost sur votre projet Node.js. Avant de plonger dans les spécificités de Node.js, vous voudrez peut-être comprendre les fondamentaux des API d'email dans l'infrastructure cloud et comment ils s'intègrent dans le développement d'applications modernes.

En tant que Developer Advocate pour SparkPost, j'écris beaucoup d'applications d'exemple. Mon expérience est principalement dans le développement front-end, donc ma langue la plus forte est JavaScript. Grâce à Node.js, je suis aussi un développeur backend décent. En parlant d'applications d'exemple, Node.js fonctionne également très bien pour construire des fonctions serverless qui s'intègrent avec Flow Builder - comme notre guide d'intégration Google Cloud Functions and Vision API. Cela signifie-t-il que je suis maintenant un développeur full stack? Quoi qu'il en soit, il était important pour moi que nous ayons une bibliothèque client SparkPost géniale pour Node.js. Alors, j'ai plongé dedans et suis devenu contributeur (même avant d'être embauché).

Permettez-moi de vous aider à démarrer l'envoi d'emails avec SparkPost sur votre projet Node.js. Avant de plonger dans les spécificités de Node.js, vous voudrez peut-être comprendre les fondamentaux des API d'email dans l'infrastructure cloud et comment ils s'intègrent dans le développement d'applications modernes.

Installation & Setup

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le calendrier de support à long terme (LTS) de Node.js, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre fenêtre de terminal.

Créons un nouveau projet npm. Si vous en avez déjà un, vous pouvez passer cette partie.

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

Cela créera un nouveau projet et acceptera tous les paramètres par défaut. Vous pouvez aussi exécuter `npm init` et répondre à toutes les questions.

Maintenant nous pouvons installer node-sparkpost :

> npm install sparkpost --save

Une fois installé, vous pouvez importer et créer une instance de la classe SparkPost :

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

C’est une bonne pratique d'éviter de mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, donc nous avons configuré la bibliothèque client pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le calendrier de support à long terme (LTS) de Node.js, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre fenêtre de terminal.

Créons un nouveau projet npm. Si vous en avez déjà un, vous pouvez passer cette partie.

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

Cela créera un nouveau projet et acceptera tous les paramètres par défaut. Vous pouvez aussi exécuter `npm init` et répondre à toutes les questions.

Maintenant nous pouvons installer node-sparkpost :

> npm install sparkpost --save

Une fois installé, vous pouvez importer et créer une instance de la classe SparkPost :

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

C’est une bonne pratique d'éviter de mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, donc nous avons configuré la bibliothèque client pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le calendrier de support à long terme (LTS) de Node.js, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre fenêtre de terminal.

Créons un nouveau projet npm. Si vous en avez déjà un, vous pouvez passer cette partie.

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

Cela créera un nouveau projet et acceptera tous les paramètres par défaut. Vous pouvez aussi exécuter `npm init` et répondre à toutes les questions.

Maintenant nous pouvons installer node-sparkpost :

> npm install sparkpost --save

Une fois installé, vous pouvez importer et créer une instance de la classe SparkPost :

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

C’est une bonne pratique d'éviter de mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, donc nous avons configuré la bibliothèque client pour détecter la variable d'environnement SPARKPOST_API_KEY.

Envoi d'Email

Maintenant que vous avez une instance de SparkPost, vous êtes prêt à envoyer. Il existe plusieurs options disponibles pour l'envoi, mais commençons par un exemple simple. Voici comment vous envoyez un e-mail à un seul destinataire, en spécifiant le contenu en ligne :

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

Remarque : Cet exemple utilise des Promises, mais ne vous inquiétez pas. Nous supportons également les fonctions de rappel.

Pour les applications d'entreprise nécessitant une gestion complète des e-mails, les développeurs peuvent également avoir besoin de prendre en compte la construction de systèmes d'archivage d'e-mails pour gérer les exigences de stockage et de conformité.

Il existe plus d'options disponibles avec les transmissions, y compris la spécification de modèles stockés ou de listes de destinataires, cc et bcc, l'ajout de pièces jointes, la spécification d'une campagne, l'utilisation de données de substitution, et bien plus encore. Consultez les exemples, les documents pour la ressource Transmissions, et la documentation de l'API Transmissions pour plus d'infos.

Maintenant que vous avez une instance de SparkPost, vous êtes prêt à envoyer. Il existe plusieurs options disponibles pour l'envoi, mais commençons par un exemple simple. Voici comment vous envoyez un e-mail à un seul destinataire, en spécifiant le contenu en ligne :

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

Remarque : Cet exemple utilise des Promises, mais ne vous inquiétez pas. Nous supportons également les fonctions de rappel.

Pour les applications d'entreprise nécessitant une gestion complète des e-mails, les développeurs peuvent également avoir besoin de prendre en compte la construction de systèmes d'archivage d'e-mails pour gérer les exigences de stockage et de conformité.

Il existe plus d'options disponibles avec les transmissions, y compris la spécification de modèles stockés ou de listes de destinataires, cc et bcc, l'ajout de pièces jointes, la spécification d'une campagne, l'utilisation de données de substitution, et bien plus encore. Consultez les exemples, les documents pour la ressource Transmissions, et la documentation de l'API Transmissions pour plus d'infos.

Maintenant que vous avez une instance de SparkPost, vous êtes prêt à envoyer. Il existe plusieurs options disponibles pour l'envoi, mais commençons par un exemple simple. Voici comment vous envoyez un e-mail à un seul destinataire, en spécifiant le contenu en ligne :

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

Remarque : Cet exemple utilise des Promises, mais ne vous inquiétez pas. Nous supportons également les fonctions de rappel.

Pour les applications d'entreprise nécessitant une gestion complète des e-mails, les développeurs peuvent également avoir besoin de prendre en compte la construction de systèmes d'archivage d'e-mails pour gérer les exigences de stockage et de conformité.

Il existe plus d'options disponibles avec les transmissions, y compris la spécification de modèles stockés ou de listes de destinataires, cc et bcc, l'ajout de pièces jointes, la spécification d'une campagne, l'utilisation de données de substitution, et bien plus encore. Consultez les exemples, les documents pour la ressource Transmissions, et la documentation de l'API Transmissions pour plus d'infos.

Bonus : Envoyer un Email avec Nodemailer

Nodemailer est une bibliothèque populaire pour Node.js qui rend l'envoi d'e-mails « aussi simple qu'un jeu ». Pour ceux d'entre vous qui choisissent d'utiliser cette bibliothèque, nous avons créé un transport SparkPost pour Nodemailer. Vous devrez installer les packages nodemailer  et nodemailer-sparkpost-transport dans votre projet.

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

Maintenant, vous pouvez créer une instance de transport nodemailer:

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

Notez comment je lis la clé API à partir d'une variable d'environnement. C'est toujours une bonne pratique de ne jamais la mettre directement dans votre code.

Il existe plusieurs options pouvant être passées dans le transport SparkPost, comme l'identifiant de campagne et si le message est transactionnel ou non. Consultez le README.md pour toutes les options.

Voici comment vous enverriez le même message ci-dessus en utilisant 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);
    }
  }
);

Nodemailer est une bibliothèque populaire pour Node.js qui rend l'envoi d'e-mails « aussi simple qu'un jeu ». Pour ceux d'entre vous qui choisissent d'utiliser cette bibliothèque, nous avons créé un transport SparkPost pour Nodemailer. Vous devrez installer les packages nodemailer  et nodemailer-sparkpost-transport dans votre projet.

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

Maintenant, vous pouvez créer une instance de transport nodemailer:

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

Notez comment je lis la clé API à partir d'une variable d'environnement. C'est toujours une bonne pratique de ne jamais la mettre directement dans votre code.

Il existe plusieurs options pouvant être passées dans le transport SparkPost, comme l'identifiant de campagne et si le message est transactionnel ou non. Consultez le README.md pour toutes les options.

Voici comment vous enverriez le même message ci-dessus en utilisant 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);
    }
  }
);

Nodemailer est une bibliothèque populaire pour Node.js qui rend l'envoi d'e-mails « aussi simple qu'un jeu ». Pour ceux d'entre vous qui choisissent d'utiliser cette bibliothèque, nous avons créé un transport SparkPost pour Nodemailer. Vous devrez installer les packages nodemailer  et nodemailer-sparkpost-transport dans votre projet.

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

Maintenant, vous pouvez créer une instance de transport nodemailer:

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

Notez comment je lis la clé API à partir d'une variable d'environnement. C'est toujours une bonne pratique de ne jamais la mettre directement dans votre code.

Il existe plusieurs options pouvant être passées dans le transport SparkPost, comme l'identifiant de campagne et si le message est transactionnel ou non. Consultez le README.md pour toutes les options.

Voici comment vous enverriez le même message ci-dessus en utilisant 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);
    }
  }
);

Double Bonus : Envoyer un email avec notif.me

Nous savons tous que l'email est roi de la communication, mais parfois vous souhaitez pouvoir atteindre les gens via plusieurs canaux. notif.me est une bibliothèque Node.js pour envoyer toutes sortes de messages transactionnels. Que vous souhaitiez envoyer un email, un sms, une notification push ou des notifications web, vous pouvez le faire facilement. Il possède également des stratégies intégrées de secours et de répartition pour plusieurs fournisseurs. Nous avons récemment travaillé avec les créateurs pour créer un fournisseur SparkPost. Vous devrez installer le package `notifme-sdk` dans votre projet.

> npm install notifme-sdk --save

Vous pouvez maintenant créer une instance notifme avec le fournisseur SparkPost :

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

Encore une fois, nous tirons la clé API d'une variable d'environnement. Nous l'avons dit trois fois — c'est tellement important. 🙂

Maintenant, répétons cet exemple, cette fois en utilisant 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);

C'est vraiment facile à utiliser et je recommande de regarder les autres fonctionnalités.

Nous savons tous que l'email est roi de la communication, mais parfois vous souhaitez pouvoir atteindre les gens via plusieurs canaux. notif.me est une bibliothèque Node.js pour envoyer toutes sortes de messages transactionnels. Que vous souhaitiez envoyer un email, un sms, une notification push ou des notifications web, vous pouvez le faire facilement. Il possède également des stratégies intégrées de secours et de répartition pour plusieurs fournisseurs. Nous avons récemment travaillé avec les créateurs pour créer un fournisseur SparkPost. Vous devrez installer le package `notifme-sdk` dans votre projet.

> npm install notifme-sdk --save

Vous pouvez maintenant créer une instance notifme avec le fournisseur SparkPost :

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

Encore une fois, nous tirons la clé API d'une variable d'environnement. Nous l'avons dit trois fois — c'est tellement important. 🙂

Maintenant, répétons cet exemple, cette fois en utilisant 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);

C'est vraiment facile à utiliser et je recommande de regarder les autres fonctionnalités.

Nous savons tous que l'email est roi de la communication, mais parfois vous souhaitez pouvoir atteindre les gens via plusieurs canaux. notif.me est une bibliothèque Node.js pour envoyer toutes sortes de messages transactionnels. Que vous souhaitiez envoyer un email, un sms, une notification push ou des notifications web, vous pouvez le faire facilement. Il possède également des stratégies intégrées de secours et de répartition pour plusieurs fournisseurs. Nous avons récemment travaillé avec les créateurs pour créer un fournisseur SparkPost. Vous devrez installer le package `notifme-sdk` dans votre projet.

> npm install notifme-sdk --save

Vous pouvez maintenant créer une instance notifme avec le fournisseur SparkPost :

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

Encore une fois, nous tirons la clé API d'une variable d'environnement. Nous l'avons dit trois fois — c'est tellement important. 🙂

Maintenant, répétons cet exemple, cette fois en utilisant 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);

C'est vraiment facile à utiliser et je recommande de regarder les autres fonctionnalités.

Il n'y a pas de mauvaise façon de Node

Quand il s'agit d'envoyer des emails en utilisant Node.js, vous avez plusieurs options. Nous avons travaillé dur pour aider à rendre cela aussi indolore que possible.

Quand il s'agit d'envoyer des emails en utilisant Node.js, vous avez plusieurs options. Nous avons travaillé dur pour aider à rendre cela aussi indolore que possible.

Quand il s'agit d'envoyer des emails en utilisant Node.js, vous avez plusieurs options. Nous avons travaillé dur pour aider à rendre cela aussi indolore que possible.

Autres news

Lire la suite de cette catégorie

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

La plateforme native AI complète qui évolue avec votre business.

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

La plateforme native AI complète qui évolue avec votre business.