Un guide pour utiliser SparkPost avec Node.js

Oiseau

1 sept. 2017

Email

1 min read

Un guide pour utiliser SparkPost avec Node.js

Oiseau

1 sept. 2017

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 exemples. Mon expérience est principalement en développement front-end, donc mon langage le plus fort est JavaScript. Grâce à Node.js, je suis également un développeur backend décent. En parlant d'applications exemples, Node.js fonctionne aussi très bien pour créer des fonctions serverless qui s'intègrent avec Flow Builder - comme notre guide d'intégration Google Cloud Functions et 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 cliente SparkPost géniale pour Node.js. Donc, je m'y suis plongé et je suis devenu un contributeur (même avant d'être embauché).

Permettez-moi de vous aider à commencer à envoyer des 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 elles s'intègrent dans le développement d'applications modernes.

Installation & Setup

Je vais partir du principe que vous avez Node.js installé. Comme 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 également exécuter `npm init` et répondre à toutes les instructions.

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 recommandé d'éviter de mettre votre clé API dans le code. Nous vous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque client pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais partir du principe que vous avez Node.js installé. Comme 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 également exécuter `npm init` et répondre à toutes les instructions.

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 recommandé d'éviter de mettre votre clé API dans le code. Nous vous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque client pour détecter la variable d'environnement SPARKPOST_API_KEY.

Je vais partir du principe que vous avez Node.js installé. Comme 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 également exécuter `npm init` et répondre à toutes les instructions.

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 recommandé d'éviter de mettre votre clé API dans le code. Nous vous recommandons fortement de la stocker en dehors de votre code, nous avons donc configuré la bibliothèque client 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 l'envoi, mais commençons par un exemple simple. Voici comment envoyer un e-mail à un seul destinataire, en spécifiant du 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 envoi !') console.log(data) }) .catch(err => { console.log('Whoops! Quelque chose a mal tourné') console.log(err) })

Remarque : Cet exemple utilise des Promesses, mais ne vous inquiétez pas. Nous prenons également en charge 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 considérer la construction de systèmes d'archivage des 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'informations.

Bonus : Envoyer un Email avec Nodemailer

Nodemailer est une bibliothèque populaire pour Node.js qui rend l'envoi d'e-mails "aussi simple que de faire 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

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. 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 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.

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.

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.