Reach

Grow

Manage

Automate

Reach

Grow

Manage

Automate

Una guida all'uso di SparkPost con Node.js

Uccello

1 set 2017

Email

1 min read

Una guida all'uso di SparkPost con Node.js

Uccello

1 set 2017

Email

1 min read

Una guida all'uso di SparkPost con Node.js

Come Developer Advocate per SparkPost, scrivo molte applicazioni di esempio. Il mio background è per lo più nello sviluppo front-end, quindi il mio linguaggio più forte è JavaScript. Grazie a Node.js, sono anche un discreto sviluppatore backend. Questo significa che ora sono uno sviluppatore full stack?

Introduzione a Node.js

Come Developer Advocate per SparkPost, scrivo molte applicazioni di esempio. Il mio background è principalmente nello sviluppo front-end, quindi il mio linguaggio più forte è JavaScript. Grazie a Node.js, sono anche un discreto sviluppatore backend. Parlando di applicazioni di esempio, Node.js funziona alla grande anche per costruire funzioni serverless che si integrano con Flow Builder - come la nostra guida all'integrazione di Google Cloud Functions e Vision API. Questo significa che ora sono uno sviluppatore full stack? Comunque, era importante per me che avessimo una fantastica libreria client di SparkPost per Node.js. Così, mi sono tuffato dentro e sono diventato un contributore (anche prima di essere assunto).

Permettetemi di aiutarvi a iniziare a inviare email con SparkPost nel vostro progetto Node.js. Prima di approfondire le specifiche di Node.js, potreste voler comprendere i fondamentali delle API di email nell'infrastruttura cloud e come si inseriscono nello sviluppo moderno delle applicazioni.

Installing & Setup

Suppongo che tu abbia installato Node.js. Poiché seguiamo il programma di supporto a lungo termine (LTS) di Node.js, sarà necessario eseguire la versione 4 o superiore. Puoi vedere quale versione stai utilizzando usando il comando `node –version` nella finestra del terminale.

Creiamo un nuovo progetto npm. Se ne hai già uno, puoi saltare questa parte.

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

Questo creerà un nuovo progetto e accetterà tutte le impostazioni predefinite. Puoi anche eseguire `npm init` e rispondere a tutti i prompt.

Ora possiamo installare node-sparkpost:

> npm install sparkpost --save

Una volta installato, puoi importare e creare un'istanza della classe SparkPost:

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

È una buona pratica evitare di inserire la chiave API nel codice. Raccomandiamo vivamente di conservarla al di fuori del codice, così abbiamo configurato la libreria del client per rilevare la variabile di ambiente SPARKPOST_API_KEY.

Suppongo che tu abbia installato Node.js. Poiché seguiamo il programma di supporto a lungo termine (LTS) di Node.js, sarà necessario eseguire la versione 4 o superiore. Puoi vedere quale versione stai utilizzando usando il comando `node –version` nella finestra del terminale.

Creiamo un nuovo progetto npm. Se ne hai già uno, puoi saltare questa parte.

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

Questo creerà un nuovo progetto e accetterà tutte le impostazioni predefinite. Puoi anche eseguire `npm init` e rispondere a tutti i prompt.

Ora possiamo installare node-sparkpost:

> npm install sparkpost --save

Una volta installato, puoi importare e creare un'istanza della classe SparkPost:

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

È una buona pratica evitare di inserire la chiave API nel codice. Raccomandiamo vivamente di conservarla al di fuori del codice, così abbiamo configurato la libreria del client per rilevare la variabile di ambiente SPARKPOST_API_KEY.

Suppongo che tu abbia installato Node.js. Poiché seguiamo il programma di supporto a lungo termine (LTS) di Node.js, sarà necessario eseguire la versione 4 o superiore. Puoi vedere quale versione stai utilizzando usando il comando `node –version` nella finestra del terminale.

Creiamo un nuovo progetto npm. Se ne hai già uno, puoi saltare questa parte.

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

Questo creerà un nuovo progetto e accetterà tutte le impostazioni predefinite. Puoi anche eseguire `npm init` e rispondere a tutti i prompt.

Ora possiamo installare node-sparkpost:

> npm install sparkpost --save

Una volta installato, puoi importare e creare un'istanza della classe SparkPost:

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

È una buona pratica evitare di inserire la chiave API nel codice. Raccomandiamo vivamente di conservarla al di fuori del codice, così abbiamo configurato la libreria del client per rilevare la variabile di ambiente SPARKPOST_API_KEY.

Invio Email

Ora che hai un'istanza di SparkPost, sei pronto per inviare. Ci sono diverse opzioni disponibili per l'invio, ma iniziamo con un semplice esempio. Ecco come inviare un'email a un destinatario unico, specificando contenuti inline:

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

Nota: Questo esempio utilizza Promises, ma non preoccuparti. Supportiamo anche funzioni di callback.

Per applicazioni aziendali che richiedono una gestione completa delle email, gli sviluppatori potrebbero dover considerare la costruzione di sistemi di archiviazione delle email per gestire requisiti di archiviazione e conformità.

Ci sono più opzioni disponibili con le trasmissioni, tra cui specificare modelli memorizzati o liste di destinatari, cc e bcc, aggiungere allegati, specificare una campagna, usare dati di sostituzione e molto altro. Dai un'occhiata agli esempi, alla documentazione delle risorse delle trasmissioni e alla documentazione API delle trasmissioni per ulteriori informazioni.

Bonus: Inviare Email con Nodemailer

Nodemailer è una libreria popolare per Node.js che rende l'invio di email "facile come una torta". Per coloro che scelgono di utilizzare questa libreria, abbiamo creato un SparkPost transport per Nodemailer. Dovrete installare i pacchetti nodemailer  e nodemailer-sparkpost-transport  nel vostro progetto.

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

Ora potete creare un'istanza di trasporto nodemailer:

const nodemailer = require('nodemailer') 
const sparkPostTransport = require('nodemailer-sparkpost-transport') 
const transporter = nodemailer.createTransport(sparkPostTransport({ 
  'sparkPostApiKey': process.env.SPARKPOST_API_KEY 
}))

Nota come sto leggendo l'API Key da una variabile d'ambiente. È ancora una buona prassi non inserirla mai direttamente nel tuo codice.

Ci sono diverse opzioni che possono essere passate nel trasporto SparkPost, come l'id della campagna e se il messaggio è transazionale o meno. Date un'occhiata al README.md per tutte le opzioni.

Ecco come invieresti lo stesso messaggio sopra 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);
    }
  }
);

Double Bonus: Inviare Email con notif.me

Sappiamo tutti che l'email è il re della comunicazione, ma a volte vuoi poter raggiungere le persone tramite più canali. notif.me è una libreria Node.js per l'invio di tutti i tipi di messaggi transazionali. Che tu voglia inviare un'email, sms, push, o webpushes, puoi farlo con facilità. Ha anche strategie integrate di fallback e round robin per più provider. Abbiamo recentemente lavorato con i creatori per costruire un provider SparkPost. Dovrai installare il pacchetto `notifme-sdk` nel tuo progetto.

> npm install notifme-sdk --save

Ora puoi creare un'istanza notifme con il provider SparkPost:

const NotifmeSdk = require('notifme-sdk').default;
const notifmeSdk = new NotifmeSdk({
  channels: {
    email: {
      providers: [
        {
          type: 'sparkpost',
          apiKey: process.env.SPARKPOST_API_KEY
        }
      ]
    }
  }
});

Ancora una volta, stiamo estraendo la chiave API da una variabile d'ambiente. L'abbiamo detto tre volte — è davvero importante. 🙂

Ora ripetiamo lo stesso esempio, questa volta 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>Hello world</p>'
  }
})
.then(console.log)
.catch(console.error);

È davvero facile da usare e consiglio di dare un'occhiata alle altre caratteristiche.

Non c'è modo sbagliato di usare Node

Quando si tratta di inviare email utilizzando Node.js, hai molte opzioni. Abbiamo lavorato duramente per renderlo il più indolore possibile.

Connettiamoci con un esperto di Bird.
Scopri tutta la potenza del Bird in 30 minuti.

Inviando, accetti che Bird possa contattarti riguardo ai nostri prodotti e servizi.

Puoi annullare l'iscrizione in qualsiasi momento. Consulta la Informativa sulla Privacy di Bird per i dettagli sul trattamento dei dati.

Azienda

Newsletter

Rimani aggiornato con Bird attraverso aggiornamenti settimanali nella tua inbox.

Connettiamoci con un esperto di Bird.
Scopri tutta la potenza del Bird in 30 minuti.

Inviando, accetti che Bird possa contattarti riguardo ai nostri prodotti e servizi.

Puoi annullare l'iscrizione in qualsiasi momento. Consulta la Informativa sulla Privacy di Bird per i dettagli sul trattamento dei dati.

Azienda

Newsletter

Rimani aggiornato con Bird attraverso aggiornamenti settimanali nella tua inbox.

Connettiamoci con un esperto di Bird.
Scopri tutta la potenza del Bird in 30 minuti.

Inviando, accetti che Bird possa contattarti riguardo ai nostri prodotti e servizi.

Puoi annullare l'iscrizione in qualsiasi momento. Consulta la Informativa sulla Privacy di Bird per i dettagli sul trattamento dei dati.

R

Raggiungi

G

Grow

M

Manage

A

Automate

Azienda

Newsletter

Rimani aggiornato con Bird attraverso aggiornamenti settimanali nella tua inbox.