获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

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

ส่วนขยายอีเมลทริกเกอร์ ( 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. ตั้งค่าบริการจดหมายขาออกของคุณ

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

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

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

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

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

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

  4. ทางเลือก: ตั้งค่าคอลเลกชันผู้ใช้

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

    • คอลเลกชันจะต้องถูกป้อนรหัสผู้ใช้ นั่นคือ 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.',
}

เขตข้อมูลผู้ส่งและผู้รับ

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

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

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

ช่องข้อความ

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

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

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

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

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