Guía de uso de SparkPost con Node.js

Guía de uso de SparkPost con Node.js

Guía de uso de SparkPost con Node.js

Sep 1, 2017

Publicado por

Publicado por

Bird

Bird

-

Categoría:

Categoría:

Email

Email

Ready to see Bird
in action?

Ready to see Bird
in action?

A Guide to Using SparkPost with Node.js

Introducción a Node.js

As a Developer Advocate for SparkPost, I write a lot of sample applications. My background is mostly front-end development, therefore my strongest language is JavaScript. Thanks to Node.js, I’m a decent backend developer as well. Does this mean I’m a full stack developer now? Anyway, it was important for me that we had an awesome SparkPost client library for Node.js. So, I dove right in and became a contributor (incluso antes de que me contrataran).

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


Installing & Setup

I’m going to assume that you have Node.js instalado. Because we follow the Calendario de soporte a largo plazo (LTS) de Node.js, you’ll need to be running version 4 or higher. You can see which version you’re running using the `node –version` command in your terminal window.

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

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

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

Now we can install 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('TU CLAVE API')

It’s good practice to avoid putting your API key in code. We highly recommend storing it outside your code, so we set up the client library to detect the SPARKPOST_API_KEY  environment variable.


Envío de correo electrónico

Ahora que tienes una instancia de SparkPost, estás listo para enviar. Hay bastantes opciones disponibles para el envío, pero vamos a empezar con un ejemplo sencillo. Así es como se envía un correo electrónico a un solo destinatario, especificando el 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! You just sent your first mailing!') console.log(data) }) .catch(err => { console.log('Whoops! Something went wrong') console.log(err) })

Note: This example uses Promises, but don’t worry. We also funciones de devolución de llamada.

There are more options available with transmissions, including specifying stored templates or recipient lists, cc and bcc, adding attachments, specifying a campaign, using substitution data, and much more. Check out the examples, docs para el recurso Transmisiones, and the Documentación de la API de transmisiones for more info.


Bonificación: Envío de correo electrónico con Nodemailer

Nodemailer is a popular library for Node.js that make sending email “easy as cake.” For those of you choosing to use this library, we created a Transporte SparkPost para Nodemailer. You’ll need to install the nodemailer  and nodemailer-sparkpost-transport packages in your project.

> npm install nodemailer nodemailer-sparkpost-transport --save

Ahora puede 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 }))

 

Observe cómo estoy leyendo la clave de la API de una variable de entorno. Sigue siendo una buena práctica nunca poner eso directamente en tu código.

There are several options that can passed into the SparkPost transport, like campaign id and whether or not the message is transactional. Take a look en el README.md for all the options.

Así es como enviarías el mismo mensaje anterior utilizando 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: Envío de correo electrónico con notif.me

We all know that email is king of communication but sometimes you want to be able to reach people via multiple channels. notif.me is a Node.js library for sending all kinds of transactional messages. Whether you want to send an email, sms, push, or webpushes, you can do it with ease. It also has built in fall and round robin strategies for multiple providers. We recently worked with the creators to build a SparkPost provider. You’ll need to install the `notifme-sdk` package in your project.

> npm install notifme-sdk --save

Ahora puede 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, }] } } })

De nuevo, estamos sacando la API Key de una variable de entorno. Lo hemos dicho tres veces - es así de importante 🙂 .

Ahora vamos a repetir este mismo ejemplo, esta vez utilizando 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>Hello world</p>' } }).then(console.log)

It’s really easy to use and I recommend looking en el otras características.

No hay forma incorrecta de hacer Node

Cuando se trata de enviar correo electrónico usando Node.js, tienes muchas opciones. Hemos trabajado duro para ayudar a que sea lo menos doloroso posible.

Your new standard in Marketing, Pay & Sales. It's Bird

En right message -> a la right person -> at the right time.

By clicking "See Bird" you agree to Bird's Confidencialidad.

Your new standard in Marketing, Pay & Sales. It's Bird

En right message -> a la right person -> at the right time.

By clicking "See Bird" you agree to Bird's Confidencialidad.