
Como defensor de desarrolladores para SparkPost, escribo muchas aplicaciones de muestra. Mi experiencia es principalmente en desarrollo front-end, por lo que mi lenguaje más fuerte es JavaScript. Gracias a Node.js, también soy un buen desarrollador backend. ¿Significa esto que ahora soy un desarrollador full stack?
Introducción a Node.js
Como defensor de desarrolladores para SparkPost, escribo muchas aplicaciones de muestra. Mi experiencia se centra principalmente en el desarrollo front-end, por lo que mi idioma más fuerte es JavaScript. Gracias a Node.js, también soy un desarrollador backend decente. Hablando de aplicaciones de muestra, Node.js también funciona muy bien para construir funciones serverless que se integran con Flow Builder, como nuestra guía de integración con Google Cloud Functions y Vision API. ¿Significa esto que ahora soy un desarrollador full stack? De todos modos, era importante para mí que tuviéramos una biblioteca cliente de SparkPost impresionante para Node.js. Así que me sumergí de lleno y me convertí en un contribuyente (incluso antes de ser contratado).
Permíteme ayudarte a comenzar a enviar correos electrónicos con SparkPost en tu proyecto de Node.js. Antes de profundizar en los detalles específicos de Node.js, es posible que desees entender los fundamentos de las APIs de correo electrónico en la infraestructura de la nube y cómo se integran en el desarrollo de aplicaciones modernas.
Instalación y Configuración
Enviando Email
Ahora que tienes una instancia de SparkPost, estás listo para enviar. Hay bastantes opciones disponibles para enviar, pero comencemos con un ejemplo simple. Aquí tienes cómo enviar un correo electrónico a un solo destinatario, especificando contenido en línea:
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! ¡Acabas de enviar tu primer correo!') console.log(data) }) .catch(err => { console.log('¡Ups! Algo salió mal') console.log(err) })
Nota: Este ejemplo utiliza Promesas, pero no te preocupes. También admitimos funciones de callback.
Para aplicaciones empresariales que requieren una gestión completa del correo electrónico, los desarrolladores también pueden necesitar considerar construir sistemas de archivo de correos electrónicos para manejar requisitos de almacenamiento y cumplimiento.
Hay más opciones disponibles con las transmisiones, incluyendo especificar plantillas almacenadas o listas de destinatarios, cc y bcc, agregar archivos adjuntos, especificar una campaña, usar datos de sustitución, y mucho más. Consulta los ejemplos, la documentación para el recurso Transmissions, y la documentación de la API de Transmissions para más información.
Bonus: Enviar Email con Nodemailer
Nodemailer es una popular biblioteca para Node.js que hace que enviar correos electrónicos sea “fácil como un pastel.” Para aquellos de ustedes que elijan usar esta biblioteca, hemos creado un transportador de SparkPost para Nodemailer. Necesitarás instalar los paquetes nodemailer y nodemailer-sparkpost-transport en tu proyecto.
> npm install nodemailer nodemailer-sparkpost-transport --save
Ahora puedes crear una instancia de transporte de nodemailer:
const nodemailer = require('nodemailer') const sparkPostTransport = require('nodemailer-sparkpost-transport') const transporter = nodemailer.createTransport(sparkPostTransport({ 'sparkPostApiKey': process.env.SPARKPOST_API_KEY }))
Observa cómo estoy leyendo la clave de API de una variable de entorno. Sigue siendo una buena práctica no poner eso directamente en tu código.
Hay varias opciones que se pueden pasar al transporte SparkPost, como el ID de la campaña y si el mensaje es transaccional o no. Echa un vistazo al README.md para conocer todas las opciones.
A continuación se muestra cómo enviarías el mismo mensaje anterior usando 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); } })
Doble Bonificación: Enviar Correo Electrónico con notif.me
Todos sabemos que el correo electrónico es el rey de la comunicación, pero a veces quieres poder llegar a la gente a través de múltiples canales. notif.me es una biblioteca de Node.js para enviar todo tipo de mensajes transaccionales. Ya sea que quieras enviar un correo electrónico, sms, push, o webpushes, puedes hacerlo con facilidad. También tiene estrategias integradas de caída y round robin para múltiples proveedores. Recientemente trabajamos con los creadores para construir un proveedor SparkPost. Necesitarás instalar el paquete `notifme-sdk` en tu proyecto.
> npm install notifme-sdk --save
Ahora puedes crear una instancia de notifme con el proveedor SparkPost:
const NotifmeSdk = require('notifme-sdk').default const notifmeSdk = new NotifmeSdk({ channels: { email: { providers: [{ type: 'sparkpost', apiKey: process.env.SPARKPOST_API_KEY, }] } } })
Nuevamente, estamos obteniendo la API Key de una variable de entorno. Lo hemos dicho tres veces — es así de importante. 🙂
Ahora repitamos este mismo ejemplo, esta vez usando 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>Hola mundo</p>' } }).then(console.log)
Es realmente fácil de usar y recomiendo echar un vistazo a las otras características.
No hay una forma incorrecta de Node
Cuando se trata de enviar correos electrónicos usando Node.js, tienes muchas opciones. Hemos trabajado arduamente para ayudar a que sea lo más sencillo posible.