Przewodnik po korzystaniu z SparkPost z Node.js

Jako Developer Advocate w SparkPost piszę wiele przykładowych aplikacji. Moje doświadczenie to głównie rozwój front-end, dlatego moim najsilniejszym językiem jest JavaScript. Dzięki Node.js jestem również przyzwoitym deweloperem back-end. Czy to oznacza, że teraz jestem deweloperem full stack?

Autor

Ptak

Kategoria

Email

Przewodnik po korzystaniu z SparkPost z Node.js

Jako Developer Advocate w SparkPost piszę wiele przykładowych aplikacji. Moje doświadczenie to głównie rozwój front-end, dlatego moim najsilniejszym językiem jest JavaScript. Dzięki Node.js jestem również przyzwoitym deweloperem back-end. Czy to oznacza, że teraz jestem deweloperem full stack?

Autor

Ptak

Kategoria

Email

Przewodnik po korzystaniu z SparkPost z Node.js

Jako Developer Advocate w SparkPost piszę wiele przykładowych aplikacji. Moje doświadczenie to głównie rozwój front-end, dlatego moim najsilniejszym językiem jest JavaScript. Dzięki Node.js jestem również przyzwoitym deweloperem back-end. Czy to oznacza, że teraz jestem deweloperem full stack?

Autor

Ptak

Kategoria

Email

Wprowadzenie do Node.js

Jako programista wspierający dla SparkPost, piszę wiele przykładowych aplikacji. Moje doświadczenie to przede wszystkim rozwój front-end, dlatego moim najsilniejszym językiem jest JavaScript. Dzięki Node.js, jestem całkiem przyzwoitym programistą backendowym. Czy to oznacza, że teraz jestem programistą full stack? Tak czy inaczej, było dla mnie ważne, abyśmy mieli świetną bibliotekę klienta SparkPost dla Node.js. Więc, od razu wsiąknąłem i stałem się współtwórcą (nawet zanim zostałem zatrudniony).

Pozwól mi pomóc ci zacząć wysyłać e-maile z SparkPost w twoim projekcie Node.js.


Instalacja i konfiguracja

Zakładam, że masz zainstalowany Node.js. Ponieważ śledzimy harmonogram długoterminowego wsparcia (LTS) Node.js, powinieneś mieć wersję 4 lub wyższą. Możesz sprawdzić, którą wersję masz za pomocą polecenia `node –version` w swoim oknie terminala.

Stwórzmy nowy projekt npm. Jeśli już go masz, możesz pominąć tę część.

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

To utworzy nowy projekt i zaakceptuje wszystkie domyślne ustawienia. Możesz również zamiast tego uruchomić `npm init` i odpowiedzieć na wszystkie pytania.

Teraz możemy zainstalować node-sparkpost:

> npm install sparkpost --save

Po zainstalowaniu możesz zaimportować i utworzyć instancję klasy SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('TWÓJ KLUCZ API')

Dobrym zwyczajem jest unikanie umieszczania klucza API w kodzie. Zdecydowanie zalecamy przechowywanie go poza kodem, więc skonfigurowaliśmy bibliotekę klienta, aby wykrywać zmienną środowiskową SPARKPOST_API_KEY .


Wysyłanie e-maili

Teraz, gdy masz instancję SparkPost, jesteś gotowy do wysyłania. Istnieje wiele opcji wysyłania, ale zacznijmy od prostego przykładu. Oto jak wysłać e-mail do jednego odbiorcy, określając treść inline:

client.transmissions.send({ content: { from: 'test@your-sending-domain.com', subject: 'Witaj od node-sparkpost', html: '<p>Witaj świecie</p>' }, recipients: [ {address: 'someone@somedomain.com'} ] }) .then(data => { console.log('Woohoo! Właśnie wysłałeś swoją pierwszą wiadomość!') console.log(data) }) .catch(err => { console.log('Ups! Coś poszło nie tak') console.log(err) })

Uwaga: Ten przykład używa obietnic, ale nie martw się. Również wspieramy funkcje zwrotne.

Istnieje więcej opcji dostępnych z transmisjami, w tym określenie zapisanych szablonów lub list odbiorców, cc i bcc, dodawanie załączników, określanie kampanii, używanie danych zamiennych i wiele więcej. Zapoznaj się z przykładami, dokumentacją dla zasobu Transmissions oraz dokumentacją API Transmissions, aby uzyskać więcej informacji.


Bonus: Wysyłanie e-maili z Nodemailer

Nodemailer to popularna biblioteka dla Node.js, która sprawia, że wysyłanie e-maili jest „łatwe jak ciasto”. Dla tych z was, którzy decydują się na tę bibliotekę, stworzyliśmy transport SparkPost dla Nodemailer. Będziesz musiał zainstalować pakiety nodemailer  i nodemailer-sparkpost-transport w swoim projekcie.

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

Teraz możesz stworzyć instancję transportu nodemailer:

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

 

Zauważ, jak odczytuję klucz API z zmiennej środowiskowej. Nadal najlepszą praktyką jest, aby nigdy nie umieszczać go bezpośrednio w kodzie.

Istnieje wiele opcji, które można przechodzić do transportu SparkPost, jak identyfikator kampanii i czy wiadomość jest transakcyjna. Zobacz README.md dla wszystkich opcji.

Oto jak wysłałbyś tę samą wiadomość powyżej, używając Nodemailer:

transporter.sendMail({ from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Witaj od nodemailer-sparkpost-transport', html: '<p>Witaj świecie</p>' }, (err, info) => { if (err) { console.error(err); } else { console.log(info); } })


Podwójny bonus: Wysyłanie e-maili z notif.me

Wszyscy wiemy, że e-mail jest królem komunikacji, ale czasami chcesz mieć możliwość dotarcia do ludzi za pośrednictwem wielu kanałów. notif.me to biblioteka Node.js do wysyłania różnych rodzajów wiadomości transakcyjnych. Niezależnie od tego, czy chcesz wysłać e-mail, sms, powiadomienie push, czy webpushes, możesz to zrobić z łatwością. Posiada również wbudowane strategie fall i round robin dla wielu dostawców. Niedawno współpracowaliśmy z twórcami, aby zbudować dostawcę SparkPost. Będziesz musiał zainstalować pakiet `notifme-sdk` w swoim projekcie.

> npm install notifme-sdk --save

Możesz teraz stworzyć instancję notifme z dostawcą SparkPost:

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

Znów odczytujemy klucz API z zmiennej środowiskowej. Mówiliśmy o tym trzy razy — to takie ważne. 🙂

Teraz powtórzmy ten sam przykład, tym razem używając notif.me:

notifmeSdk.send({ email: { from: 'test@your-sending-domain.com', to: 'someone@somedomain.com', subject: 'Witaj od dostawcy SparkPost notif.me', html: '<p>Witaj świecie</p>' } }).then(console.log)

To naprawdę łatwe w użyciu i zalecam zapoznanie się z innymi funkcjami.

Nie ma złego sposobu na Node

Jeśli chodzi o wysyłanie e-maili za pomocą Node.js, masz wiele opcji. Ciężko pracowaliśmy, aby uczynić to jak najmniej bolesnym.

Gotowy, aby zobaczyć Bird w akcji?

Schedule a demo now.

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's

Platforma oparta na sztucznej inteligencji do Marketingu, Wsparcia i Finansów

Klikając „Uzyskaj demonstrację”, zgadzasz się na Bird's