
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. La mia esperienza è principalmente nello sviluppo front-end, quindi la mia lingua più forte è JavaScript. Grazie a Node.js, sono anche un discreto sviluppatore backend. Parlando di applicazioni di esempio, Node.js funziona bene anche per costruire funzioni serverless che si integrano con Flow Builder - come la nostra guida all'integrazione di Google Cloud Functions e Vision API. Significa che sono ora uno sviluppatore full stack? Comunque, era importante per me che avessimo una fantastica libreria client SparkPost per Node.js. Quindi, mi ci sono tuffato 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 fondamenti degli API email nell'infrastruttura cloud e come si integrano nello sviluppo di applicazioni moderne.
Installing & Setup
Invio Email
Ora che hai un'istanza di SparkPost, sei pronto per inviare. Ci sono parecchie opzioni disponibili per l'invio, ma iniziamo con un esempio semplice. Ecco come inviare un'email a un singolo destinatario, specificando il contenuto 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! Hai appena inviato la tua prima mailing!') console.log(data) }) .catch(err => { console.log('Whoops! Qualcosa è andato storto') 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 e-mail, gli sviluppatori potrebbero dover considerare anche la costruzione di sistemi di archiviazione delle e-mail per gestire i requisiti di archiviazione e conformità.
Ci sono più opzioni disponibili con le trasmissioni, inclusa la specifica di modelli memorizzati o elenchi di destinatari, cc e bcc, l'aggiunta di allegati, la specifica di una campagna, l'uso di dati di sostituzione e molto altro. Dai un'occhiata agli esempi, alla documentazione per la risorsa Transmissions e alla documentazione API di Transmissions 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 trasporto SparkPost per Nodemailer. Sarà necessario 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 sto leggendo la chiave API da una variabile di ambiente. È ancora consigliato 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: 'Hello from nodemailer-sparkpost-transport', html: '<p>Ciao mondo</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })
Double Bonus: Inviare Email con notif.me
Tutti sappiamo che l'email è il re della comunicazione, ma a volte vuoi essere in grado di 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 facilmente. Ha anche strategie di fallback e round robin integrate per più provider. Abbiamo recentemente lavorato con i creatori per costruire un provider SparkPost. Avrai bisogno di installare il pacchetto `notifme-sdk` nel tuo progetto.
> npm install notifme-sdk --save
Ora puoi creare un'istanza di 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, }] } } })
Di nuovo, stiamo prendendo la chiave API da una variabile di ambiente. L'abbiamo detto tre volte — è davvero importante. 🙂
Ora ripetiamo lo stesso esempio, stavolta 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)
È davvero facile da usare e consiglio di dare un'occhiata alle altre funzionalità.
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.