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