Zasięg

Grow

Manage

Automate

Zasięg

Grow

Manage

Automate

Przewodnik po korzystaniu z SparkPost z Node.js

Email

1 min read

Przewodnik po korzystaniu z SparkPost z Node.js

Email

1 min read

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?

Wprowadzenie do Node.js

Jako Developer Advocate dla SparkPost, piszę wiele przykładowych aplikacji. Moje doświadczenie związane jest głównie z front-end developmentem, dlatego najpewniej czuję się w JavaScript. Dzięki Node.js, jestem również przyzwoitym deweloperem backendowym. Czy to oznacza, że jestem teraz deweloperem pełnego stosu? W każdym razie, było dla mnie ważne, abyśmy mieli świetną bibliotekę klienta SparkPost dla Node.js. Więc zanurzyłem się w tym od razu i zostałem współtwórcą (nawet zanim zostałem zatrudniony).

Pozwól mi pomóc Ci rozpocząć wysyłanie e-maili za pomocą SparkPost w Twoim projekcie Node.js.

Instalacja i konfiguracja

Zakładam, że masz zainstalowany Node.js. Ponieważ przestrzegamy harmonogramu wsparcia długoterminowego (LTS) Node.js, musisz używać wersji 4 lub wyższej. Możesz sprawdzić, której wersji używasz, korzystając z polecenia `node –version` w oknie terminala.

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

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

To stworzy nowy projekt i zaakceptuje wszystkie domyślne ustawienia. Możesz również 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('YOUR API KEY')

Dobrą praktyką jest unikanie umieszczania klucza API w kodzie. Zalecamy przechowywanie go poza kodem, dlatego skonfigurowaliśmy bibliotekę klienta do wykrywania zmiennej środowiskowej SPARKPOST_API_KEY.

Zakładam, że masz zainstalowany Node.js. Ponieważ przestrzegamy harmonogramu wsparcia długoterminowego (LTS) Node.js, musisz używać wersji 4 lub wyższej. Możesz sprawdzić, której wersji używasz, korzystając z polecenia `node –version` w oknie terminala.

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

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

To stworzy nowy projekt i zaakceptuje wszystkie domyślne ustawienia. Możesz również 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('YOUR API KEY')

Dobrą praktyką jest unikanie umieszczania klucza API w kodzie. Zalecamy przechowywanie go poza kodem, dlatego skonfigurowaliśmy bibliotekę klienta do wykrywania zmiennej środowiskowej SPARKPOST_API_KEY.

Zakładam, że masz zainstalowany Node.js. Ponieważ przestrzegamy harmonogramu wsparcia długoterminowego (LTS) Node.js, musisz używać wersji 4 lub wyższej. Możesz sprawdzić, której wersji używasz, korzystając z polecenia `node –version` w oknie terminala.

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

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

To stworzy nowy projekt i zaakceptuje wszystkie domyślne ustawienia. Możesz również 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('YOUR API KEY')

Dobrą praktyką jest unikanie umieszczania klucza API w kodzie. Zalecamy przechowywanie go poza kodem, dlatego skonfigurowaliśmy bibliotekę klienta do wykrywania zmiennej środowiskowej SPARKPOST_API_KEY.

Wysyłanie Email

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ć email do pojedynczego odbiorcy, określając treść 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) })

Uwaga: Ten przykład wykorzystuje Promise, ale nie martw się. My również obsługujemy funkcje zwrotne.

Istnieje więcej opcji dostępnych z transmisjami, w tym określanie przechowywanych szablonów lub list odbiorców, cc i bcc, dodawanie załączników, określanie kampanii, użycie danych zastępczych i wiele więcej. Zobacz przykłady, dokumentację zasobów Transmissions, i dokumentację API Transmissions po więcej informacji.

Bonus: Wysyłanie Email z Nodemailer

Nodemailer jest popularną biblioteką dla Node.js, która sprawia, że wysyłanie e-maili jest „łatwe jak ciasto”. Dla tych, którzy zdecydują się używać tej biblioteki, 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 utworzyć 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 nigdy nie umieszczać jej bezpośrednio w kodzie.

Istnieje kilka opcji, które można przekazać do transportu SparkPost, takie jak id kampanii i czy wiadomość jest transakcyjna. Spójrz na README.md po wszystkie opcje.

Oto, jak wysłałbyś tę samą wiadomość powyżej za pomocą 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); } })

Podwójny Bonus: Wysyłanie Email z notif.me

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

> npm install notifme-sdk --save

Możesz teraz utworzyć 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, }] } } })

Ponownie pobieramy klucz API z zmiennej środowiskowej. Powiedzieliśmy to 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: 'Hello from the SparkPost notif.me provider', html: '<p>Hello world</p>' } }).then(console.log)

To naprawdę łatwe w użyciu, i polecam 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. Pracowaliśmy ciężko, aby uczynić to jak najprostszym.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

Połączmy Cię z ekspertem Bird.
Zobacz pełną moc Bird w 30 minut.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.

R

Reach

G

Grow

M

Manage

A

Automate

Company

Biuletyn

Bądź na bieżąco z Bird dzięki cotygodniowym aktualizacjom do Twojej skrzynki odbiorczej.

Przesyłając, zgadzasz się, że Bird może kontaktować się z Tobą w sprawie naszych produktów i usług.

Możesz zrezygnować z subskrypcji w dowolnym momencie. Zobacz Privacy Statement firmy Bird, aby uzyskać szczegóły dotyczące przetwarzania danych.