Un guide pour utiliser SparkPost avec Node.js

Email

1 min read

Un guide pour utiliser SparkPost avec Node.js

Email

1 min read

Un guide pour utiliser SparkPost avec Node.js

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 également un développeur backend décent. 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 exceptionnelle pour Node.js. Alors, je me suis lancé et je suis devenu contributeur (même avant d'être embauché).

Permettez-moi de vous aider à commencer à envoyer des emails avec SparkPost sur votre projet Node.js.

Installation & Setup

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le Node.js Long Term Support (LTS) schedule, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre 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 réglages par défaut. Vous pouvez également 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')

Il est bon de ne pas mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque cliente pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le Node.js Long Term Support (LTS) schedule, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre 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 réglages par défaut. Vous pouvez également 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')

Il est bon de ne pas mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque cliente pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais supposer que vous avez Node.js installé. Parce que nous suivons le Node.js Long Term Support (LTS) schedule, vous devrez utiliser la version 4 ou supérieure. Vous pouvez voir quelle version vous utilisez avec la commande `node –version` dans votre 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 réglages par défaut. Vous pouvez également 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')

Il est bon de ne pas mettre votre clé API dans le code. Nous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque cliente pour détecter la variable d'environnement SPARKPOST_API_KEY.

Envoi d'Email

Maintenant que vous avez une instance SparkPost, vous êtes prêt à envoyer. Il existe plusieurs options disponibles pour envoyer, mais commençons par un exemple simple. Voici comment envoyer 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! Vous venez d'envoyer votre premier courrier !') console.log(data) }) .catch(err => { console.log('Oups ! Quelque chose a mal tourné') console.log(err) })

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

Il existe plus d'options disponibles avec les transmissions, y compris la spécification des modèles stockés ou des 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, la documentation pour la ressource des Transmissions, et la documentation de l'API Transmissions pour plus d'informations.

Bonus : Envoyer un Email avec Nodemailer

Nodemailer est une bibliothèque populaire pour Node.js qui rend l'envoi d'e-mails "facile comme un gâteau". 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

Vous pouvez maintenant 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 }))

 

Remarquez comment je lis la clé API à partir d'une variable d'environnement. Il est toujours préférable de ne jamais la mettre directement dans votre code.

Il existe plusieurs options qui peuvent ê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>Bonjour tout le monde</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, un push ou des webpushes, vous pouvez le faire avec facilité. Elle possède également des stratégies intégrées de fall et de round robin pour plusieurs fournisseurs. Nous avons récemment travaillé avec les créateurs pour développer un fournisseur SparkPost. Vous devrez installer le paquet `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 extrayons la clé API d'une variable d'environnement. Nous l'avons dit trois fois - c'est si 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>Bonjour le monde</p>' } }).then(console.log)

C'est vraiment facile à utiliser et je recommande de jeter un œil aux 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.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

Connectons-vous avec un expert Bird.
Découvrez toute la puissance du Bird en 30 minutes.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.

R

Atteindre

G

Grow

M

Manage

A

Automate

Company

Newsletter

Restez à jour avec Bird grâce aux mises à jour hebdomadaires dans votre boîte de réception.

En soumettant, vous acceptez que Bird puisse vous contacter au sujet de nos produits et services.

Vous pouvez vous désabonner à tout moment. Consultez la Déclaration de confidentialité de Bird pour plus de détails sur le traitement des données.