
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 qu'Advocate Développeur pour SparkPost, j'écris beaucoup d'applications d'exemples. Mon expérience est principalement dans le 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 d'exemples, Node.js est également excellent pour créer des fonctions sans serveur 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 client SparkPost géniale pour Node.js. Donc, je me suis lancé et suis devenu contributeur (même avant d'être embauché).
Permettez-moi de vous aider à commencer à envoyer des e-mails avec SparkPost sur votre projet Node.js. Avant de plonger dans les spécificités de Node.js, vous pourriez vouloir comprendre les fondamentaux des API d'e-mail dans l'infrastructure cloud et comment elles s'intègrent dans le développement d'applications modernes.
Installation & Setup
Envoi d'Email
Maintenant que vous avez une instance SparkPost, vous êtes prêt à envoyer. Il y a 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! Vous venez d'envoyer votre premier envoi !') console.log(data) }) .catch(err => { console.log('Oups ! Quelque chose s'est mal passé') console.log(err) })
Remarque : Cet exemple utilise des Promises, 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 création de systèmes d'archivage des e-mails pour gérer les exigences de stockage et de conformité.
Il y a plus d'options disponibles avec les transmissions, y compris la spécification de modèles ou de listes de destinataires stockés, 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 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.