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 contoh. Latar belakang saya sebagian besar adalah pengembangan front-end, oleh karena itu bahasa terkuat saya adalah JavaScript. Berkat Node.js, saya juga menjadi pengembang backend yang cukup baik. Berbicara tentang aplikasi contoh, 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 menjadi pengembang full stack? Bagaimanapun, penting bagi saya bahwa kami memiliki perpustakaan klien SparkPost yang luar biasa untuk Node.js. Jadi, saya langsung terjun dan menjadi kontributor (bahkan sebelum saya dipekerjakan).

Izinkan saya membantu Anda memulai pengiriman email dengan SparkPost pada proyek Node.js Anda. Sebelum mendalami spesifik Node.js, Anda mungkin ingin memahami fundamental dari email API dalam infrastruktur cloud dan bagaimana mereka cocok dalam pengembangan aplikasi modern.

Instalasi & Pengaturan

Saya akan mengasumsikan bahwa Anda sudah menginstal Node.js. Karena kami mengikuti jadwal Dukungan Jangka Panjang (LTS) Node.js, Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi mana yang Anda jalankan menggunakan perintah `node –version` di jendela terminal Anda.

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

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

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

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah diinstal, Anda bisa mengimpor dan membuat instance dari kelas SparkPost:

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

Sebaiknya hindari menempatkan kunci API Anda di kode. Kami sangat merekomendasikan menyimpannya di luar kode Anda, sehingga kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Saya akan mengasumsikan bahwa Anda sudah menginstal Node.js. Karena kami mengikuti jadwal Dukungan Jangka Panjang (LTS) Node.js, Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi mana yang Anda jalankan menggunakan perintah `node –version` di jendela terminal Anda.

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

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

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

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah diinstal, Anda bisa mengimpor dan membuat instance dari kelas SparkPost:

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

Sebaiknya hindari menempatkan kunci API Anda di kode. Kami sangat merekomendasikan menyimpannya di luar kode Anda, sehingga kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Saya akan mengasumsikan bahwa Anda sudah menginstal Node.js. Karena kami mengikuti jadwal Dukungan Jangka Panjang (LTS) Node.js, Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi mana yang Anda jalankan menggunakan perintah `node –version` di jendela terminal Anda.

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

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

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

Sekarang kita bisa menginstal node-sparkpost:

> npm install sparkpost --save

Setelah diinstal, Anda bisa mengimpor dan membuat instance dari kelas SparkPost:

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

Sebaiknya hindari menempatkan kunci API Anda di kode. Kami sangat merekomendasikan menyimpannya di luar kode Anda, sehingga kami mengatur pustaka klien untuk mendeteksi variabel lingkungan SPARKPOST_API_KEY.

Mengirim Email

Sekarang setelah Anda memiliki instance SparkPost, Anda siap untuk mengirim. Ada cukup banyak opsi yang tersedia untuk mengirim, tetapi mari kita mulai dengan contoh sederhana. Berikut cara mengirim email ke penerima tunggal, dengan menentukan konten secara 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)
})

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 persyaratan penyimpanan dan kepatuhan.

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

Bonus: Mengirim Email dengan Nodemailer

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

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

Sekarang Anda bisa membuat instance transport 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 API Key dari variabel lingkungan. Masih merupakan praktik terbaik untuk tidak pernah menaruhnya langsung ke dalam kode Anda.

Ada beberapa opsi yang bisa dimasukkan ke dalam SparkPost transport, seperti ID kampanye dan apakah pesan bersifat transaksional atau tidak. Lihat README.md untuk semua opsi.

Begini 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 sebuah library Node.js untuk mengirim semua jenis pesan transaksional. Apakah Anda ingin mengirim email, sms, dorongan, atau webpushes, Anda dapat melakukannya dengan mudah. Itu juga memiliki strategi jatuh dan round robin bawaan untuk beberapa penyedia. Kami baru-baru ini bekerja dengan para pencipta untuk membangun penyedia SparkPost. Anda perlu menginstal paket `notifme-sdk` di proyek Anda.

> npm install notifme-sdk --save

Anda sekarang 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 mengambil Kunci API dari variabel lingkungan. Kami sudah mengatakan ini tiga kali — memang sangat penting. 🙂

Sekarang mari ulangi contoh yang sama ini, 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)
.catch(console.error);

Sangat mudah digunakan dan saya merekomendasikan 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.