Reach

Grow

Manage

Automate

Reach

Grow

Manage

Automate

Una guía para utilizar SparkPost con Node.js

Correo electrónico

1 min read

Una guía para utilizar SparkPost con Node.js

Correo electrónico

1 min read

Una guía para utilizar SparkPost con Node.js

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 del Desarrollador para SparkPost, escribo muchas aplicaciones de muestra. Mi experiencia es principalmente en desarrollo front-end, por lo tanto, mi lenguaje más fuerte es JavaScript. Gracias a Node.js, soy un desarrollador backend decente también. ¿Significa esto que ahora soy un desarrollador full stack? De todos modos, era importante para mí que tuviéramos una impresionante biblioteca cliente de SparkPost para Node.js. Así que, me adentré de lleno y me convertí en un colaborador (incluso antes de ser contratado).

Permíteme ayudarte a comenzar a enviar correos electrónicos con SparkPost en tu proyecto de Node.js.

Instalación y Configuración

Voy a suponer que tienes Node.js instalado. Debido a que seguimos el Node.js Long Term Support (LTS) schedule, necesitarás estar ejecutando la versión 4 o superior. Puedes ver qué versión estás ejecutando usando el comando `node –version` en tu ventana de terminal.

Vamos a crear un nuevo proyecto npm. Si ya tienes uno, puedes omitir esta parte.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

Esto creará un nuevo proyecto y aceptará todos los valores predeterminados. También puedes ejecutar `npm init` y responder a todas las indicaciones.

Ahora podemos instalar node-sparkpost:

> npm install sparkpost --save

Una vez instalado, puedes importar y crear una instancia de la clase SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Es una buena práctica evitar poner tu clave API en el código. Recomendamos encarecidamente almacenarla fuera de tu código, por lo que configuramos la biblioteca del cliente para detectar la variable de entorno SPARKPOST_API_KEY .

Voy a suponer que tienes Node.js instalado. Debido a que seguimos el Node.js Long Term Support (LTS) schedule, necesitarás estar ejecutando la versión 4 o superior. Puedes ver qué versión estás ejecutando usando el comando `node –version` en tu ventana de terminal.

Vamos a crear un nuevo proyecto npm. Si ya tienes uno, puedes omitir esta parte.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

Esto creará un nuevo proyecto y aceptará todos los valores predeterminados. También puedes ejecutar `npm init` y responder a todas las indicaciones.

Ahora podemos instalar node-sparkpost:

> npm install sparkpost --save

Una vez instalado, puedes importar y crear una instancia de la clase SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Es una buena práctica evitar poner tu clave API en el código. Recomendamos encarecidamente almacenarla fuera de tu código, por lo que configuramos la biblioteca del cliente para detectar la variable de entorno SPARKPOST_API_KEY .

Voy a suponer que tienes Node.js instalado. Debido a que seguimos el Node.js Long Term Support (LTS) schedule, necesitarás estar ejecutando la versión 4 o superior. Puedes ver qué versión estás ejecutando usando el comando `node –version` en tu ventana de terminal.

Vamos a crear un nuevo proyecto npm. Si ya tienes uno, puedes omitir esta parte.

> mkdir sparkpost-test > cd sparkpost-test > npm init --yes

Esto creará un nuevo proyecto y aceptará todos los valores predeterminados. También puedes ejecutar `npm init` y responder a todas las indicaciones.

Ahora podemos instalar node-sparkpost:

> npm install sparkpost --save

Una vez instalado, puedes importar y crear una instancia de la clase SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Es una buena práctica evitar poner tu clave API en el código. Recomendamos encarecidamente almacenarla fuera de tu código, por lo que configuramos la biblioteca del cliente para detectar la variable de entorno SPARKPOST_API_KEY .

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í te mostramos 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('¡Whoops! Algo salió mal') console.log(err) })

Nota: Este ejemplo usa Promesas, pero no te preocupes. También admitimos funciones de callback.

Hay más opciones disponibles con las transmisiones, incluyendo la especificación de plantillas almacenadas o listas de destinatarios, cc y bcc, añadir archivos adjuntos, especificar una campaña, usar datos de sustitución y mucho más. Echa un vistazo a los ejemplos, documentos para el recurso de Transmissions, y la documentación de la API de Transmissions para más información.

Bonus: Enviar Email con Nodemailer

Nodemailer es una biblioteca popular para Node.js que hace que enviar correos electrónicos sea “fácil como un pastel.” Para aquellos de ustedes que eligen usar esta biblioteca, hemos creado un SparkPost transport 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 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 leo la clave API desde una variable de entorno. Todavía es una buena práctica nunca ponerla directamente en tu código.

Hay varias opciones que se pueden pasar al SparkPost transport, como id de campaña y si el mensaje es transaccional o no. Echa un vistazo al README.md para todas las opciones.

Aquí está cómo enviarías el mismo mensaje de arriba 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.

Únete a nuestro Newsletter.

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Únete a nuestro Newsletter.

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Únete a nuestro Newsletter.

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Conectémosle con un experto de Bird.
Vea el poder completo del Bird en 30 minutos.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Company

Newsletter

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Conectémosle con un experto de Bird.
Vea el poder completo del Bird en 30 minutos.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Company

Newsletter

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

Conectémosle con un experto de Bird.
Vea el poder completo del Bird en 30 minutos.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.

R

Reach

G

Grow

M

Manage

A

Automate

Company

Newsletter

Mantente al día con Bird a través de actualizaciones semanales en tu buzón.

Al enviar, aceptas que Bird pueda contactarte sobre nuestros productos y servicios.

Puedes darte de baja en cualquier momento. Consulta el Aviso de Privacidad de Bird para obtener detalles sobre el procesamiento de datos.