
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 to głównie rozwój front-end, dlatego moim najmocniejszym językiem jest JavaScript. Dzięki Node.js jestem też przyzwoitym backend developerem. Mówiąc o przykładowych aplikacjach, Node.js doskonale nadaje się również do budowania funkcji bezserwerowych integrujących się z Flow Builder - jak nasz Google Cloud Functions and Vision API integration guide. Czy to oznacza, że teraz jestem full stack developerem? W każdym razie ważne było dla mnie, abyśmy mieli doskonałą bibliotekę klienta SparkPost dla Node.js. Więc zanurkowałem 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. Zanim zagłębisz się w szczegóły dotyczące Node.js, możesz chcieć zrozumieć fundamentals of email APIs in cloud infrastructure i jak pasują one do nowoczesnego rozwoju aplikacji.
Instalacja i konfiguracja
Wysyłanie Email
Teraz, gdy masz instancję SparkPost, jesteś gotowy do wysyłania. Istnieje całkiem sporo opcji wysyłki, ale zacznijmy od prostego przykładu. Oto jak wysłać e-mail do pojedynczego odbiorcy, określając treść w linii:
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! Właśnie wysłałeś swoje pierwsze wysyłanie!') 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ę. My także wspieramy funkcje zwrotne.
W przypadku aplikacji korporacyjnych wymagających kompleksowego zarządzania e-mailem, deweloperzy mogą również potrzebować rozważyć budowanie systemów archiwizacji e-maili do obsługi wymogów przechowywania i zgodności.
Istnieje więcej opcji dostępnych z transmissions, 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. Sprawdź przykłady, dokumentację zasobu Transmissions, i dokumentację API Transmissions dla 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 z Was, którzy decydują się na użycie 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 jest to najlepsza praktyka, aby nigdy nie umieszczać go bezpośrednio w kodzie.
Istnieje kilka opcji, które można przekazać do transportu SparkPost, jak kampania id oraz czy wiadomość jest transakcyjna czy nie. Spójrz na 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: '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.