Una guida all'uso di SparkPost con Node.js
Uccello
1 set 2017
1 min read

Conclusioni principali
SparkPost offre diversi modi per inviare email da Node.js — chiamate API dirette, trasporto Nodemailer e consegna multi-canale con notif.me.
Conservare le chiavi API nelle variabili d'ambiente, mai codificarle direttamente. SparkPost rileva automaticamente
SPARKPOST_API_KEY.L'API Transmissions ti offre una flessibilità potente: modelli, dati di sostituzione, allegati e tagging delle campagne.
Gli utenti di Nodemailer possono passare a SparkPost immediatamente con il trasporto ufficiale — senza riscritture di codice importanti.
notif.me offre consegna multi-canale (email, SMS, push) con strategie di fallback, rendendolo ideale per sistemi di notifiche robusti.
Node.js si adatta naturalmente alle moderne API email cloud e ai flussi di lavoro serverless, rendendo facile l'integrazione delle funzionalità di email direttamente all'interno della tua app.
Q&A Highlights
Qual è il modo più veloce per iniziare a inviare email con SparkPost in Node.js?
Installa il pacchetto
sparkpost, inizializza il client con una chiave API (preferibilmente tramite variabili di ambiente) e chiama il metodotransmissions.send()con destinatari + contenuto.Ho bisogno di memorizzare la mia chiave SparkPost API nel codice?
No — e non dovresti. Usa le variabili d'ambiente. Il client legge automaticamente
SPARKPOST_API_KEY.Posso inviare email utilizzando modelli invece di HTML inline?
Sì. L'API Transmissions supporta modelli salvati, dati di sostituzione, liste di destinatari, allegati, cc/bcc e altro.
E se già utilizzo Nodemailer?
Sei coperto — SparkPost viene fornito con un trasporto ufficiale per Nodemailer. Basta configurarlo con la tua chiave API e usare Nodemailer come al solito.
SparkPost può funzionare con sistemi di messaggistica multi-canale?
Sì. Librerie come
notifme-sdkconsentono email, SMS, push e webpush con logica di fallback, e includono un provider SparkPost.Is Node.js adatto per i flussi di lavoro email serverless?
Assolutamente. Si abbina bene con Cloud Functions, Lambdas e qualsiasi ambiente serverless che utilizza l'API di SparkPost per email basate su eventi.
Chi dovrebbe usare la Transmissions API rispetto a Nodemailer o notif.me?
Usa Transmissions API quando desideri pieno controllo e prestazioni.
Usa Nodemailer se il tuo progetto lo utilizza già e vuoi un'integrazione rapida.
Usa notif.me per messaggistica multi-canale o strategie di consegna di fallback.
Qual è la migliore pratica da seguire quando si inviano email da Node?
Considera la tua API key come sensibile — solo variabili d'ambiente, non commetterla mai nel codice.
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.
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.
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
Assumerò che tu abbia Node.js installato. Poiché seguiamo il Node.js Long Term Support (LTS) schedule, avrai bisogno di eseguire la versione 4 o superiore. Puoi vedere quale versione stai eseguendo 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à tutti i valori predefiniti. 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 memorizzarla al di fuori del tuo codice, quindi abbiamo configurato la libreria client per rilevare la variabile d'ambiente SPARKPOST_API_KEY.
Assumerò che tu abbia Node.js installato. Poiché seguiamo il Node.js Long Term Support (LTS) schedule, avrai bisogno di eseguire la versione 4 o superiore. Puoi vedere quale versione stai eseguendo 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à tutti i valori predefiniti. 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 memorizzarla al di fuori del tuo codice, quindi abbiamo configurato la libreria client per rilevare la variabile d'ambiente SPARKPOST_API_KEY.
Assumerò che tu abbia Node.js installato. Poiché seguiamo il Node.js Long Term Support (LTS) schedule, avrai bisogno di eseguire la versione 4 o superiore. Puoi vedere quale versione stai eseguendo 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à tutti i valori predefiniti. 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 memorizzarla al di fuori del tuo codice, quindi abbiamo configurato la libreria client per rilevare la variabile d'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.
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.
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); } } );
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); } } );
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.
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.
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.
Quando si tratta di inviare email utilizzando Node.js, hai molte opzioni. Abbiamo lavorato duramente per renderlo il più indolore possibile.
Quando si tratta di inviare email utilizzando Node.js, hai molte opzioni. Abbiamo lavorato duramente per renderlo il più indolore possibile.



