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

ส่วนขยายอีเมลทริกเกอร์ ( 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 ของผู้ใช้ได้ เพื่อให้ใช้งานได้ คอลเลกชันผู้ใช้ของคุณต้องเป็นไปตามเกณฑ์เหล่านี้:

    • คอลเลกชันจะต้องถูกคีย์บน ID ผู้ใช้ นั่นคือ 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.',
}

ฟิลด์ผู้ส่งและผู้รับ

ช่องระดับบนสุดของเอกสารจะระบุข้อมูลผู้ส่งอีเมลและผู้รับ ฟิลด์ที่มีอยู่คือ:

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

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

ช่องข้อความ

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

คุณสมบัติที่ใช้ได้สำหรับฟิลด์ message คือ:

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

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

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