Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

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

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

ส่วนขยายอีเมลทริกเกอร์ ( 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.',
  },
})

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

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

ก่อนที่คุณจะติดตั้งส่วนขยาย ให้ทำตามขั้นตอนเหล่านี้:

  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. ทางเลือก: ตั้งค่าคอลเลกชั่นเทมเพลต

    คุณสามารถแสดงอีเมลโดยใช้ เทมเพลต Handlebars ในการดำเนินการดังกล่าว คุณจะต้องมีคอลเล็กชัน 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
  • bcc: ที่อยู่อีเมลของผู้รับคนเดียวหรืออาร์เรย์ที่มีที่อยู่อีเมลของผู้รับหลายราย
  • 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: ส่วนหัวรหัสข้อความสำหรับอีเมล หากมี
  • เรื่อง: เรื่องของอีเมล
  • ข้อความ: เนื้อหาข้อความธรรมดาของอีเมล
  • html: เนื้อหา HTML ของอีเมล
  • amp: เนื้อหา AMP4EMAIL ของอีเมล
  • ไฟล์แนบ: อาร์เรย์ที่มีไฟล์แนบ รองรับตัวเลือก Nodemailer : สตริง utf-8, ประเภทเนื้อหาที่กำหนดเอง, URL, สตริงที่เข้ารหัส, URI ข้อมูล และโหนด MIME ที่สร้างไว้ล่วงหน้า (โปรดทราบว่าอีเมลของคุณไม่สามารถเข้าถึงระบบไฟล์ของเซิร์ฟเวอร์คลาวด์)

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

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