การใช้ส่วนขยายอีเมลทริกเกอร์

ส่วนขยายอีเมลทริกเกอร์ (firestore-send-email) ช่วยให้คุณส่ง อีเมลตามเอกสารในคอลเล็กชัน Cloud Firestore กำลังเพิ่มเอกสารไปยัง คอลเล็กชันจะทริกเกอร์ส่วนขยายนี้ให้ส่งอีเมลที่สร้างขึ้นจาก ของเอกสาร ช่องระดับบนสุดของเอกสารจะระบุผู้ส่งอีเมลและ ผู้รับ ซึ่งรวมถึงตัวเลือก to, cc และ bcc (UID ที่รองรับแต่ละรายการ) ช่อง message ของเอกสารจะระบุองค์ประกอบอีเมลอื่นๆ เช่น บรรทัดเรื่อง และเนื้อหาอีเมล (ไม่ว่าจะเป็นข้อความธรรมดาหรือ HTML)

ต่อไปนี้เป็นตัวอย่างการเขียนเอกสารพื้นฐานที่จะเรียกใช้ส่วนขยายนี้:

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

คุณสามารถเลือกที่จะกำหนดค่าส่วนขยายนี้เพื่อแสดงอีเมลโดยใช้ เทมเพลตแฮนเดิล

การตั้งค่าก่อนการติดตั้ง

ก่อนติดตั้งส่วนขยาย ให้ทำตามขั้นตอนต่อไปนี้

  1. ตั้งค่าบริการอีเมลขาออก

    เมื่อคุณติดตั้งส่วนขยายอีเมลทริกเกอร์ คุณจะต้องระบุ การเชื่อมต่อและการตรวจสอบสิทธิ์ของเซิร์ฟเวอร์ SMTP ใช้ส่งอีเมล ขั้นตอนนี้มักมาจากบริการนำส่งทางอีเมล เช่น Sendgrid, Mailgun หรือ Mailchimp Transactional Email แต่อาจ จะเป็นเซิร์ฟเวอร์ที่คุณเป็นผู้ดูแลเอง

  2. สร้างคอลเล็กชันเอกสารอีเมล

    ส่วนขยายอีเมลของทริกเกอร์จะคอยตรวจจับเอกสารใหม่ใน Cloud Firestore คอลเล็กชันที่คุณระบุ เมื่อพบเอกสารใหม่ ส่วนขยาย ส่งอีเมลโดยอิงตามช่องของเอกสาร คุณใช้ Cloud Firestore ใดก็ได้ เก็บรวบรวมเพื่อจุดประสงค์นี้ ตัวอย่างในหน้านี้ใช้คอลเล็กชัน ชื่อ email

  3. ตั้งกฎความปลอดภัยสำหรับการรวบรวมเอกสารทางอีเมล

    ใช้ส่วนขยายนี้เพื่อทริกเกอร์การส่งอีเมลได้โดยตรงจากลูกค้า แอปพลิเคชัน อย่างไรก็ตาม คุณควรควบคุมการเข้าถึงของลูกค้าสำหรับ เพื่อหลีกเลี่ยงการละเมิดที่อาจเกิดขึ้น (คุณไม่ต้องการให้ผู้ใช้ส่ง อีเมลที่กำหนดเองจากที่อยู่ของบริษัท)

    กฎความปลอดภัยจะแตกต่างกันไปในแต่ละแอปพลิเคชัน แต่คุณควร คุณต้องตรวจสอบเสมอว่าอีเมลถูกส่งไปยังผู้รับที่ต้องการเท่านั้น เนื้อหารูปแบบอิสระจะเก็บไว้น้อยที่สุด เทมเพลตช่วยคุณได้ สามารถใช้กฎความปลอดภัยเพื่อยืนยันว่าข้อมูลที่กำลังป้อนลงใน เทมเพลตตรงกับความคาดหวังของคุณเกี่ยวกับสิ่งที่ผู้ใช้ควรได้รับอนุญาต ทริกเกอร์

  4. ไม่บังคับ: ตั้งค่าคอลเล็กชันผู้ใช้

    ในส่วนการใช้งานพื้นฐานของส่วนขยายนี้ ให้ระบุผู้รับอีเมล โดยระบุอีเมลในช่อง to, cc และ bcc ของ เอกสารข้อความ อีกวิธีหนึ่งคือ หากคุณมีฐานข้อมูลผู้ใช้อยู่ใน Cloud Firestore คุณจะระบุผู้รับได้โดยใช้ UID สำหรับกรณีนี้ คอลเล็กชันของผู้ใช้ต้องเป็นไปตามเกณฑ์ต่อไปนี้

    • ต้องเชื่อมโยงกับ User-ID ในคอลเล็กชัน นั่นคือ รหัสเอกสารของ เอกสารผู้ใช้ในคอลเล็กชันต้องเป็น UID การตรวจสอบสิทธิ์ Firebase ของผู้ใช้
    • เอกสารของผู้ใช้แต่ละรายต้องมีช่อง email ที่มีอีเมลของผู้ใช้ ที่อยู่
  5. ไม่บังคับ: ตั้งค่าคอลเล็กชันเทมเพลต

    คุณแสดงผลอีเมลได้โดยใช้เทมเพลตแฮนเดิล ในการดำเนินการนี้ คุณจะต้องมีคอลเล็กชัน Cloud Firestore ที่มี เทมเพลต

    โปรดดูหัวข้อใช้เทมเพลตแฮนด์บาร์กับส่วนขยายอีเมลทริกเกอร์ เพื่อดูรายละเอียด

ติดตั้งส่วนขยาย

หากต้องการติดตั้งส่วนขยาย ให้ทำตามขั้นตอนใน ติดตั้งส่วนขยาย Firebase โดยสรุป ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้

เมื่อติดตั้งส่วนขยาย ระบบจะแจ้งให้ระบุ SMTP ของคุณ ข้อมูลการเชื่อมต่อและคอลเล็กชัน Cloud Firestore ที่คุณตั้งค่าไว้ก่อนหน้านี้

ใช้ส่วนขยาย

หลังจากติดตั้ง ส่วนขยายนี้จะตรวจสอบการเขียนเอกสารทั้งหมดไปยัง ที่คุณกำหนดค่าไว้ ระบบจะส่งอีเมลตามเนื้อหาของ ของเอกสาร ฟิลด์ระดับบนสุดจะระบุผู้ส่งอีเมลและ ผู้รับ ราย ช่อง message ประกอบด้วยรายละเอียดของอีเมลที่จะส่ง รวมถึงเนื้อความอีเมล

ตัวอย่าง: ส่งอีเมล

หากต้องการส่งข้อความแบบง่าย ให้เพิ่มเอกสารลงในคอลเล็กชันข้อความด้วย to และช่อง message ที่มีเนื้อหาต่อไปนี้

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.',
}

ช่องผู้ส่งและผู้รับ

ช่องระดับบนสุดของเอกสารจะระบุผู้ส่งและผู้รับอีเมล ช่องที่ใช้ได้มีดังนี้

  • from: อีเมลของผู้ส่ง หากไม่ได้ระบุไว้ในเอกสาร ให้ใช้ "ที่อยู่เริ่มต้น FROM" ที่กำหนดค่า พารามิเตอร์
  • replyTo: อีเมลตอบกลับ หากไม่ระบุไว้ในเอกสาร ให้ใช้ "ที่อยู่ตอบกลับเริ่มต้น" ที่กำหนดค่าไว้ พารามิเตอร์
  • to: อีเมลของผู้รับรายเดียวหรืออาร์เรย์ที่มีอีเมลของผู้รับหลายรายการ
  • toUids: อาร์เรย์ที่มี UID ของผู้รับ
  • cc: อีเมลของผู้รับรายเดียวหรืออาร์เรย์ที่มีอีเมลของผู้รับหลายรายการ
  • ccUids: อาร์เรย์ที่มี UID ของผู้รับ CC
  • สำเนาลับ: อีเมลของผู้รับรายเดียวหรืออาร์เรย์ที่มีอีเมลของผู้รับหลายรายการ
  • bccUids: อาร์เรย์ที่มี UID ของผู้รับสำเนาลับ
  • headers: ออบเจ็กต์ของช่องส่วนหัวเพิ่มเติม (เช่น {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"})

หมายเหตุ: ตัวเลือก toUids, ccUids และ bccUids จะส่งอีเมลโดยอิงตาม UID ของผู้ใช้ที่ผูกกับอีเมลภายในเอกสาร Cloud Firestore หากต้องการใช้งาน ตัวเลือกผู้รับเหล่านี้ คุณต้องระบุคอลเล็กชัน Cloud Firestore สำหรับ "คอลเล็กชันผู้ใช้" ของส่วนขยาย พารามิเตอร์ จากนั้นส่วนขยายจะสามารถอ่าน email สำหรับ UID แต่ละรายการที่ระบุในช่อง toUids, ccUids และ/หรือ bccUids

ช่องข้อความ

ช่อง message ของเอกสารมีข้อมูลดิบเกี่ยวกับการนำส่งสำหรับ อีเมล โดยทั่วไปแล้ว ฟิลด์นี้ควรมีการเติมข้อมูลด้วยโค้ดที่เชื่อถือได้ซึ่งทำงานใน เซิร์ฟเวอร์ของคุณเองหรือ Cloud Functions (โปรดดูหัวข้อ "กฎความปลอดภัยและการส่ง อีเมล" ด้านล่าง)

พร็อพเพอร์ตี้ที่ใช้ได้สำหรับช่อง message ได้แก่

  • messageId: ส่วนหัวของรหัสข้อความสำหรับอีเมล หากมี
  • subject: เรื่องของอีเมล
  • text: เนื้อหาข้อความธรรมดาของอีเมล
  • html: เนื้อหา HTML ของอีเมล
  • amp: เนื้อหา AMP4EMAIL ของอีเมล
  • attachments: อาร์เรย์ที่มีไฟล์แนบ ตัวเลือก Nodemailer ที่รองรับ: สตริง utf-8, ประเภทเนื้อหาที่กำหนดเอง, URL, สตริงที่เข้ารหัส, URI ข้อมูล และโหนด MIME ที่สร้างไว้ล่วงหน้า (โปรดทราบว่าอีเมลของคุณไม่มีสิทธิ์เข้าถึงระบบไฟล์ของเซิร์ฟเวอร์ระบบคลาวด์)

การใช้งานขั้นสูง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ส่วนขยายนี้ขั้นสูง