Reach

Grow

Manage

Automate

Reach

Grow

Manage

Automate

Panduan Menggunakan SparkPost dengan Node.js

Burung

1 Sep 2017

Email

1 min read

Panduan Menggunakan SparkPost dengan Node.js

Burung

1 Sep 2017

Email

1 min read

Panduan Menggunakan SparkPost dengan Node.js

Sebagai Pengacara Pengembang untuk SparkPost, saya menulis banyak aplikasi contoh. Latar belakang saya sebagian besar adalah pengembangan front-end, sehingga bahasa terkuat saya adalah JavaScript. Berkat Node.js, saya juga menjadi pengembang backend yang cukup baik. Apakah ini berarti saya sekarang adalah pengembang full stack?

Pengenalan Node.js

Sebagai Developer Advocate untuk SparkPost, saya menulis banyak aplikasi sampel. Latar belakang saya kebanyakan dalam pengembangan front-end, karenanya bahasa terkuat saya adalah JavaScript. Berkat Node.js, saya juga menjadi pengembang backend yang lumayan. Berbicara tentang aplikasi sampel, Node.js juga bekerja dengan baik untuk membangun fungsi serverless yang terintegrasi dengan Flow Builder - seperti panduan integrasi Google Cloud Functions dan Vision API kami. Apakah ini berarti saya sekarang adalah pengembang full stack? Bagaimanapun, penting bagi saya bahwa kami memiliki perpustakaan klien SparkPost yang luar biasa untuk Node.js. Jadi, saya terjun langsung dan menjadi kontributor (bahkan sebelum saya dipekerjakan).

Izinkan saya membantu Anda memulai mengirim email dengan SparkPost di proyek Node.js Anda. Sebelum mendalami spesifik Node.js, Anda mungkin ingin memahami dasar-dasar email API dalam infrastruktur cloud dan bagaimana mereka cocok dengan pengembangan aplikasi modern.

Instalasi & Pengaturan

Saya akan mengasumsikan bahwa Anda telah menginstal Node.js. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda harus menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang Anda jalankan dengan menggunakan perintah `node –version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memiliki satu, Anda dapat melewati bagian ini.

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

Ini akan membuat proyek baru dan menerima semua pengaturan default. Anda juga dapat menjalankan `npm init` dan menjawab semua prompt.

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Merupakan praktik yang baik untuk menghindari memasukkan kunci API Anda dalam kode. Kami sangat menyarankan menyimpannya di luar kode Anda, jadi kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Saya akan mengasumsikan bahwa Anda telah menginstal Node.js. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda harus menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang Anda jalankan dengan menggunakan perintah `node –version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memiliki satu, Anda dapat melewati bagian ini.

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

Ini akan membuat proyek baru dan menerima semua pengaturan default. Anda juga dapat menjalankan `npm init` dan menjawab semua prompt.

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Merupakan praktik yang baik untuk menghindari memasukkan kunci API Anda dalam kode. Kami sangat menyarankan menyimpannya di luar kode Anda, jadi kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Saya akan mengasumsikan bahwa Anda telah menginstal Node.js. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda harus menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang Anda jalankan dengan menggunakan perintah `node –version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memiliki satu, Anda dapat melewati bagian ini.

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

Ini akan membuat proyek baru dan menerima semua pengaturan default. Anda juga dapat menjalankan `npm init` dan menjawab semua prompt.

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

const SparkPost = require('sparkpost') const client = new SparkPost('YOUR API KEY')

Merupakan praktik yang baik untuk menghindari memasukkan kunci API Anda dalam kode. Kami sangat menyarankan menyimpannya di luar kode Anda, jadi kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Mengirim Email

Sekarang setelah Anda memiliki instance SparkPost, Anda siap untuk mengirim. Ada beberapa opsi yang tersedia untuk mengirim, tetapi mari kita mulai dengan contoh sederhana. Berikut adalah cara Anda mengirim email ke satu penerima, menentukan konten 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! Anda baru saja mengirim email pertama Anda!') console.log(data) }) .catch(err => { console.log('Whoops! Ada yang salah') console.log(err) })

Catatan: Contoh ini menggunakan Promises, tetapi jangan khawatir. Kami juga mendukung fungsi callback.

Untuk aplikasi perusahaan yang memerlukan manajemen email yang komprehensif, pengembang mungkin juga perlu mempertimbangkan membangun sistem pengarsipan email untuk menangani kebutuhan penyimpanan dan kepatuhan.

Ada lebih banyak opsi yang tersedia dengan transmisi, termasuk menentukan templat yang disimpan atau daftar penerima, cc dan bcc, menambahkan lampiran, menentukan kampanye, menggunakan data substitusi, dan banyak lagi. Cek contoh, dokumentasi untuk sumber daya Transmissions, dan dokumentasi API Transmissions untuk info lebih lanjut.

Bonus: Mengirim Email dengan Nodemailer

Nodemailer adalah perpustakaan populer untuk Node.js yang membuat pengiriman email “mudah seperti kue.” Bagi Anda yang memilih untuk menggunakan perpustakaan ini, kami membuat SparkPost transport untuk Nodemailer. Anda perlu menginstal paket nodemailer  dan nodemailer-sparkpost-transport  dalam proyek Anda.

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

Sekarang Anda dapat membuat instance transportasi nodemailer:

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

Perhatikan bagaimana saya membaca Kunci API dari variabel lingkungan. Masih menjadi praktik terbaik untuk tidak pernah menaruhnya langsung dalam kode Anda.

Ada beberapa opsi yang dapat diberikan ke SparkPost transport, seperti id kampanye dan apakah pesan itu transaksional atau tidak. Lihat README.md untuk semua opsi.

Berikut cara Anda mengirim pesan yang sama di atas menggunakan 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); } })

Bonus Ganda: Mengirim Email dengan notif.me

Kita semua tahu bahwa email adalah raja komunikasi tetapi terkadang Anda ingin dapat menjangkau orang melalui beberapa saluran. notif.me adalah pustaka Node.js untuk mengirim berbagai jenis pesan transaksional. Apakah Anda ingin mengirim email, sms, push, atau webpush, Anda dapat melakukannya dengan mudah. Ini juga memiliki strategi built in fall dan round robin untuk beberapa penyedia. Kami baru-baru ini bekerja dengan para pencipta untuk membangun penyedia SparkPost. Anda perlu menginstal paket `notifme-sdk` dalam proyek Anda.

> npm install notifme-sdk --save

Sekarang Anda dapat membuat instance notifme dengan penyedia SparkPost:

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

Sekali lagi, kami menarik API Key dari variabel lingkungan. Kami sudah mengatakannya tiga kali — itu sangat penting. 🙂

Sekarang mari kita ulangi contoh yang sama, kali ini menggunakan 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)

Sangat mudah digunakan dan saya merekomendasikan untuk melihat fitur lainnya.

Tidak ada cara yang salah untuk Node

Ketika mengirim email menggunakan Node.js, Anda memiliki banyak pilihan. Kami telah bekerja keras untuk membantu membuatnya semudah mungkin.

Mari hubungkan Anda dengan pakar Bird.
Lihat kekuatan penuh dari Bird dalam 30 menit.

Dengan mengirimkan, Anda setuju Bird dapat menghubungi Anda tentang produk dan layanan kami.

Anda dapat berhenti berlangganan kapan saja. Lihat Pernyataan Privasi Bird untuk detail tentang pemrosesan data.

Perusahaan

Newsletter

Tetap terinformasi dengan Bird melalui pembaruan mingguan ke kotak masuk Anda.

Mari hubungkan Anda dengan pakar Bird.
Lihat kekuatan penuh dari Bird dalam 30 menit.

Dengan mengirimkan, Anda setuju Bird dapat menghubungi Anda tentang produk dan layanan kami.

Anda dapat berhenti berlangganan kapan saja. Lihat Pernyataan Privasi Bird untuk detail tentang pemrosesan data.

Perusahaan

Newsletter

Tetap terinformasi dengan Bird melalui pembaruan mingguan ke kotak masuk Anda.

Mari hubungkan Anda dengan pakar Bird.
Lihat kekuatan penuh dari Bird dalam 30 menit.

Dengan mengirimkan, Anda setuju Bird dapat menghubungi Anda tentang produk dan layanan kami.

Anda dapat berhenti berlangganan kapan saja. Lihat Pernyataan Privasi Bird untuk detail tentang pemrosesan data.

R

Reach

G

Grow

M

Manage

A

Automate

Perusahaan

Newsletter

Tetap terinformasi dengan Bird melalui pembaruan mingguan ke kotak masuk Anda.