Bergabunglah dengan kami secara langsung dan online di Firebase Summit pada 18 Oktober 2022. Pelajari cara Firebase dapat membantu Anda mempercepat pengembangan aplikasi, merilis aplikasi dengan percaya diri, dan menentukan skala dengan mudah. Daftar sekarang

Menggunakan ekstensi Email Pemicu

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Ekstensi Email Pemicu ( firestore-send-email ) memungkinkan Anda mengirim email secara otomatis berdasarkan dokumen dalam koleksi Cloud Firestore. Menambahkan dokumen ke koleksi memicu ekstensi ini untuk mengirim email yang dibuat dari bidang dokumen. Bidang tingkat atas dokumen menentukan pengirim dan penerima email, termasuk opsi to , cc , dan bcc (masing-masing mendukung UID). Bidang message dokumen menentukan elemen email lainnya, seperti baris subjek dan isi email (teks biasa atau HTML).

Berikut adalah contoh penulisan dokumen dasar yang akan memicu ekstensi ini:

admin.firestore().collection('mail').add({
  to: 'someone@example.com',
  message: {
    subject: 'Hello from Firebase!',
    html: 'This is an <code>HTML</code> email body.',
  },
})

Anda juga dapat mengonfigurasi ekstensi ini secara opsional untuk merender email menggunakan template Handlebars .

Pengaturan pra-instalasi

Sebelum Anda menginstal ekstensi, selesaikan langkah-langkah ini:

  1. Siapkan layanan surat keluar Anda.

    Saat Anda menginstal ekstensi Trigger Email, Anda perlu menentukan detail koneksi dan autentikasi server SMTP, yang digunakan ekstensi untuk mengirim email. Ini biasanya disediakan oleh layanan pengiriman email seperti Sendgrid, Mailgun, atau Email Transaksional Mailchimp, tetapi bisa juga server yang Anda jalankan sendiri.

  2. Buat koleksi dokumen email.

    Ekstensi Trigger Email mendengarkan dokumen baru di koleksi Cloud Firestore yang Anda tentukan. Saat menemukan dokumen baru, ekstensi mengirim email berdasarkan bidang dokumen. Anda dapat menggunakan koleksi Cloud Firestore apa pun untuk tujuan ini; contoh di halaman ini menggunakan kumpulan bernama email .

  3. Siapkan aturan keamanan untuk koleksi dokumen email Anda.

    Ekstensi ini dapat digunakan untuk memicu pengiriman email langsung dari aplikasi klien. Namun, Anda harus hati-hati mengontrol akses klien ke koleksi untuk menghindari potensi penyalahgunaan (Anda tidak ingin pengguna dapat mengirim email sewenang-wenang dari alamat perusahaan Anda!).

    Aturan keamanan akan bervariasi dari satu aplikasi ke aplikasi lainnya, tetapi Anda harus selalu memastikan bahwa email hanya dikirim ke penerima yang dituju dan konten bentuk bebas dijaga seminimal mungkin. Template dapat membantu di sini—Anda dapat menggunakan aturan keamanan untuk memverifikasi bahwa data yang diisikan ke template sesuai dengan harapan Anda tentang apa yang harus diizinkan untuk dipicu oleh pengguna.

  4. Opsional: Siapkan koleksi pengguna.

    Di bawah penggunaan dasar ekstensi ini, Anda menentukan penerima email dengan menentukan alamat email mereka di bidang to , cc , dan bcc dari dokumen pesan. Sebagai alternatif, jika Anda memiliki database pengguna di Cloud Firestore, Anda dapat menentukan penerima menggunakan UID pengguna. Agar ini berfungsi, koleksi pengguna Anda harus memenuhi kriteria berikut:

    • Koleksi harus dikunci pada ID pengguna. Artinya, ID dokumen setiap dokumen pengguna dalam koleksi harus UID Firebase Authentication pengguna.
    • Setiap dokumen pengguna harus memiliki bidang email yang berisi alamat email pengguna.
  5. Opsional: Siapkan koleksi template.

    Anda dapat merender email menggunakan template Handlebars . Untuk melakukannya, Anda memerlukan koleksi Cloud Firestore untuk memuat template Anda.

    Lihat Menggunakan template Handlebars dengan ekstensi Trigger Email untuk detailnya.

Instal ekstensi

Untuk menginstal ekstensi, ikuti langkah-langkah di halaman Instal Ekstensi Firebase . Singkatnya, lakukan salah satu hal berikut:

  • Konsol Firebase: Klik tombol berikut:

    Instal ekstensi Email Pemicu

  • CLI: Jalankan perintah berikut:

    firebase ext:install firebase/firestore-send-email --project=projectId-or-alias

Saat menginstal ekstensi, Anda akan diminta untuk menentukan informasi koneksi SMTP dan koleksi Cloud Firestore yang Anda siapkan sebelumnya.

Gunakan ekstensi

Setelah instalasi, ekstensi ini memantau semua penulisan dokumen ke koleksi yang Anda konfigurasikan. Email dikirim berdasarkan isi kolom dokumen. Bidang tingkat atas menentukan pengirim dan penerima email. Bidang message berisi detail email yang akan dikirim, termasuk badan email.

Contoh: Kirim email

Untuk mengirim pesan sederhana, tambahkan dokumen ke koleksi pesan Anda dengan bidang to dan bidang message dengan konten berikut:

to: ['someone@example.com'],
message: {
  subject: 'Hello from Firebase!',
  text: 'This is the plaintext section of the email body.',
  html: 'This is the <code>HTML</code> section of the email body.',
}

Bidang pengirim dan penerima

Bidang tingkat atas dokumen menyediakan informasi pengirim dan penerima email. Bidang yang tersedia adalah:

  • dari: Alamat email pengirim. Jika tidak ditentukan dalam dokumen, gunakan parameter "Alamat Default FROM" yang dikonfigurasi.
  • replyTo: Alamat email balas-ke. Jika tidak ditentukan dalam dokumen, gunakan parameter "Alamat REPLY-TO default" yang dikonfigurasi.
  • to: Satu alamat email penerima atau larik yang berisi beberapa alamat email penerima.
  • toUids: Array yang berisi UID penerima.
  • cc: Satu alamat email penerima atau larik yang berisi beberapa alamat email penerima.
  • ccUids: Array yang berisi UID penerima CC.
  • bcc: Satu alamat email penerima atau larik yang berisi beberapa alamat email penerima.
  • bccUids: Array yang berisi UID penerima BCC.
  • headers: Objek bidang header tambahan (misalnya, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"} ).

CATATAN: Opsi toUids , ccUids , dan bccUids mengirimkan email berdasarkan UID pengguna yang dikunci ke alamat email dalam dokumen Cloud Firestore. Untuk menggunakan opsi penerima ini, Anda perlu menentukan koleksi Cloud Firestore untuk parameter "Koleksi Pengguna" ekstensi. Ekstensi kemudian dapat membaca bidang email untuk setiap UID yang ditentukan di bidang toUids , ccUids , dan/atau bccUids .

bidang pesan

Bidang message dokumen berisi informasi pengiriman mentah untuk email. Kolom ini umumnya hanya boleh diisi oleh kode tepercaya yang berjalan di server Anda sendiri atau Cloud Functions (lihat bagian "Aturan keamanan dan pengiriman email" di bawah).

Properti yang tersedia untuk bidang message adalah:

  • messageId: Header ID pesan untuk email, jika ada.
  • subjek: Subjek email.
  • teks: Konten teks biasa dari email.
  • html: Konten HTML email.
  • amp: Konten AMP4EMAIL dari email.
  • lampiran: Array yang berisi lampiran; Opsi nodemailer yang didukung: string utf-8, tipe konten khusus, URL, string yang disandikan, URI data, dan node MIME yang dibuat sebelumnya (perhatikan bahwa email Anda tidak memiliki akses ke sistem file server cloud).

Penggunaan tingkat lanjut

Pelajari tentang penggunaan lanjutan ekstensi ini: