Panduan Menggunakan SparkPost dengan Node.js

Burung

1 Sep 2017

Email

1 min read

Panduan Menggunakan SparkPost dengan Node.js

Intisari Utama

    • SparkPost menawarkan berbagai cara untuk mengirim email dari Node.js — panggilan API langsung, transport Nodemailer, dan pengiriman multi-channel notif.me.

    • Simpan kunci API di dalam variabel lingkungan, jangan pernah menuliskannya secara permanen. SparkPost secara otomatis mendeteksi SPARKPOST_API_KEY.

    • Transmissions API memberi Anda fleksibilitas yang kuat: template, data substitusi, lampiran, dan pelabelan kampanye.

    • Pengguna Nodemailer dapat langsung beralih ke SparkPost dengan transport resmi — tanpa perlu penulisan ulang kode besar-besaran.

    • notif.me menyediakan pengiriman multi-channel (email, SMS, push) dengan strategi cadangan, membuatnya ideal untuk sistem notifikasi yang kuat.

    • Node.js secara alami cocok dengan API email cloud modern dan alur kerja serverless, membuatnya mudah untuk menyematkan kemampuan email langsung di dalam aplikasi Anda.

Sorotan Q&A

  • Apa cara tercepat untuk mulai mengirim email dengan SparkPost di Node.js?

    Pasang paket sparkpost, inisialisasi klien dengan kunci API (sebaiknya melalui variabel lingkungan), dan panggil metode transmissions.send() dengan penerima + konten.

  • Apakah saya perlu menyimpan kunci SparkPost API saya dalam kode?

    Tidak — dan Anda sebaiknya tidak melakukannya. Gunakan variabel lingkungan. Klien secara otomatis membaca SPARKPOST_API_KEY.

  • Bisa saya mengirim email menggunakan templates daripada inline HTML?

    Ya. Transmissions API mendukung templat tersimpan, data substitusi, daftar penerima, lampiran, cc/bcc, dan lainnya.

  • Bagaimana jika saya sudah menggunakan Nodemailer?

    Anda terlindungi — SparkPost dilengkapi dengan transportasi Nodemailer resmi. Cukup konfigurasikan dengan API key Anda dan gunakan Nodemailer seperti biasa.

  • Dapatkah SparkPost bekerja dengan sistem pesan multi-channel?

    Ya. Library seperti notifme-sdk memungkinkan email, SMS, push, dan webpush dengan logika fallback, dan mereka menyertakan penyedia SparkPost.

  • Apakah Node.js cocok untuk alur kerja email tanpa server?

    Tentu. Ini cocok dengan Cloud Functions, Lambdas, dan lingkungan tanpa server apa pun yang menggunakan API SparkPost untuk email yang digerakkan oleh acara.

  • Siapa yang harus menggunakan Transmissions API vs. Nodemailer atau notif.me?

    • Gunakan Transmissions API ketika Anda menginginkan kontrol penuh dan kinerja.

    • Gunakan Nodemailer jika proyek Anda sudah menggunakannya dan Anda ingin integrasi cepat.

    • Gunakan notif.me untuk pengiriman pesan multi-kanal atau strategi pengiriman pengganti.

  • Apa praktik terbaik terbesar saat mengirim email dari Node?

    Perlakukan API key Anda sebagai informasi sensitif — hanya gunakan variabel lingkungan, jangan pernah berkomitmen dalam kode.

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 memiliki Node.js terpasang. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang sedang Anda gunakan dengan menggunakan perintah `node --version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memilikinya, 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 terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

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

Sebagai praktik yang baik, hindari menempatkan kunci API Anda di 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 sudah memiliki Node.js terpasang. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang sedang Anda gunakan dengan menggunakan perintah `node --version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memilikinya, 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 terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

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

Sebagai praktik yang baik, hindari menempatkan kunci API Anda di 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 sudah memiliki Node.js terpasang. Karena kami mengikuti jadwal Node.js Long Term Support (LTS), Anda perlu menjalankan versi 4 atau lebih tinggi. Anda dapat melihat versi yang sedang Anda gunakan dengan menggunakan perintah `node --version` di jendela terminal Anda.

Mari kita buat proyek npm baru. Jika Anda sudah memilikinya, 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 terinstal, Anda dapat mengimpor dan membuat instance dari kelas SparkPost:

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

Sebagai praktik yang baik, hindari menempatkan kunci API Anda di 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 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.

Berita lainnya

Baca lebih lanjut dari kategori ini

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang berkembang bersama bisnis Anda.

© 2025 Bird

A person is standing at a desk while typing on a laptop.

Platform AI-native lengkap yang berkembang bersama bisnis Anda.

© 2025 Bird