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 back-end. Significa che ora sono uno sviluppatore full stack? Comunque, era importante per me che avessimo una fantastica libreria client SparkPost per Node.js. Quindi, mi sono subito immerso e sono diventato un collaboratore (anche prima di essere assunto).
Permettimi di aiutarti a iniziare a inviare email con SparkPost nel tuo progetto Node.js.
Installazione e Configurazione
Assumerò che tu abbia Node.js installato. Poiché seguiamo il programmazione di supporto a lungo termine (LTS) di Node.js, dovrai eseguire la versione 4 o superiore. Puoi vedere quale versione stai utilizzando con 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 tutte le domande.
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')
È buona pratica evitare di inserire la tua chiave API nel codice. Consigliamo vivamente di conservarla all'esterno del tuo codice, quindi abbiamo configurato la libreria client per rilevare la variabile ambientale SPARKPOST_API_KEY .
Invio Email
Ora che hai un'istanza di SparkPost, sei pronto per inviare. Ci sono molte opzioni disponibili per l'invio, ma iniziamo con un esempio semplice. Ecco come inviare un'email a un singolo destinatario, specificando contenuto inline:
client.transmissions.send({ content: { from: 'test@your-sending-domain.com', subject: 'Ciao da node-sparkpost', html: '<p>Hello world</p>' }, recipients: [ {address: 'someone@somedomain.com'} ] }) .then(data => { console.log('Woohoo! Hai appena inviato la tua prima mailing!') console.log(data) }) .catch(err => { console.log('Oops! Qualcosa è andato storto') console.log(err) })
Nota: Questo esempio utilizza le Promesse, ma non preoccuparti. Supportiamo anche funzioni callback.
Ci sono più opzioni disponibili con le trasmissioni, inclusa la specificazione di modelli memorizzati o liste di destinatari, cc e bcc, aggiungere allegati, specificare una campagna, utilizzare dati di sostituzione e molto altro. Dai un'occhiata agli esempi, documenti per la risorsa Trasmissioni, e alla documentazione API delle Trasmissioni per ulteriori informazioni.
Bonus: Invio Email con Nodemailer
Nodemailer è una libreria popolare per Node.js che rende l'invio email “facile come una torta.” Per coloro che scelgono di utilizzare questa libreria, abbiamo creato un trasporto SparkPost per Nodemailer. Dovrai installare i pacchetti nodemailer e nodemailer-sparkpost-transport nel tuo progetto.
> npm install nodemailer nodemailer-sparkpost-transport --save
Ora puoi 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 leggo la chiave API da una variabile ambientale. È ancora una buona pratica non metterla 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. Dai 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: 'Ciao da nodemailer-sparkpost-transport', html: '<p>Hello world</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })
Doppio Bonus: Invio Email con notif.me
Sappiamo tutti che l'email è il re della comunicazione, ma a volte vuoi essere in grado di raggiungere le persone attraverso più canali. notif.me è una libreria Node.js per inviare tutti i tipi di messaggi transazionali. Che tu voglia inviare un'email, sms, push, o webpushes, puoi farlo con facilità. Ha anche strategie di caduta e round robin integrate per più fornitori. Recentemente abbiamo collaborato con i creatori per costruire un fornitore SparkPost. Dovrai installare il pacchetto `notifme-sdk` nel tuo progetto.
> npm install notifme-sdk --save
Ora puoi creare un'istanza di notifme con il fornitore 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 ambientale. L'abbiamo detto tre volte — è così importante. 🙂
Ora ripetiamo questo stesso esempio, questa volta usando notif.me:
notifmeSdk.send({ email: { from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Ciao dal fornitore SparkPost di notif.me', html: '<p>Hello world</p>' } }).then(console.log)
È davvero facile da usare e ti consiglio di guardare le altre funzionalità.
Non esiste un modo sbagliato di usare Node
Quando si tratta di inviare email utilizzando Node.js, hai molte opzioni. Abbiamo lavorato duramente per aiutarti a renderlo il più semplice possibile.