ส่วนขยายอีเมลทริกเกอร์ (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.',
},
})
คุณสามารถเลือกที่จะกำหนดค่าส่วนขยายนี้เพื่อแสดงอีเมลโดยใช้ เทมเพลตแฮนเดิล
การตั้งค่าก่อนการติดตั้ง
ก่อนติดตั้งส่วนขยาย ให้ทำตามขั้นตอนต่อไปนี้
ตั้งค่าบริการอีเมลขาออก
เมื่อคุณติดตั้งส่วนขยายอีเมลทริกเกอร์ คุณจะต้องระบุ การเชื่อมต่อและการตรวจสอบสิทธิ์ของเซิร์ฟเวอร์ SMTP ใช้ส่งอ��เมล ขั้นตอนนี้มักมาจากบริการนำส่งทางอีเมล เช่น Sendgrid, Mailgun หรือ Mailchimp Transactional Email แต่อาจ จะเป็นเซิร์ฟเวอร์ที่คุณเป็นผู้ดูแลเอง
สร้างคอลเล็กชันเอกสารอีเมล
ส่วนขยายอีเมลของทริกเกอร์จะคอยตรวจจับเอกสารใหม่ใน Cloud Firestore คอลเล็กชันที่คุณระบุ เมื่อพบเอกสารใหม่ ส่วนขยาย ส่งอีเมลโดยอิงตามช่องของเอกสาร คุณใช้ Cloud Firestore ใดก็ได้ เก็บรวบรวมเพื่อจุดประสงค์นี้ ตัวอย่างในหน้านี้ใช้คอลเล็กชัน ชื่อ
email
ตั้งกฎความปลอดภัยสำหรับการรวบรวมเอกสารทางอีเมล
ใช้ส่วนขยายนี้เพื่อทริกเกอร์การส่งอีเมลได้โดยตรงจากลูกค้า แอปพลิเคชัน อย่างไรก็ตาม คุณควรควบคุมการเข้าถึงของลูกค้าสำหรับ เพื่อหลีกเลี่ยงการละเมิดที่อาจเกิดขึ้น (คุณไม่ต้องการให้ผู้ใช้ส่ง อีเมลที่กำหนดเองจากที่อยู่ของบริษัท)
กฎความปลอดภัยจะแตกต่างกันไปในแต่ละแอปพลิเคชัน แต่คุณควร คุณต้องตรวจสอบเสมอว่าอีเมลถูกส่งไปยังผู้รับที่ต้องการเท่านั้น เนื้อหารูปแบบอิสระจะเก็บไว้น้อยที่สุด เทมเพลตช่วยคุณได้ สามารถใช้กฎความปลอดภัยเพื่อยืนยันว่าข้อมูลที่กำลังป้อนลงใน เทมเพลตตรงกับความคาดหวังของคุณเกี่ยวกับสิ่งที่ผู้ใช้ควรได้รับอนุญาต ทริกเกอร์
ไม่บังคับ: ตั้งค่าคอลเล็กชันผู้ใช้
ในส่วนการใช้งานพื้นฐานของส่วนขยายนี้ ให้ระบุผู้รับอีเมล โดยระบุอีเมลในช่อง
to
,cc
และbcc
ของ เอกสารข้อความ อีกวิธีหนึ่งคือ หากคุณมีฐานข้อมูลผู้ใช้อยู่ใน Cloud Firestore คุณจะระบุผู้รับได้โดยใช้ UID สำหรับกรณีนี้ คอลเล็กชันของผู้ใช้ต้องเป็นไปตามเกณฑ์ต่อไปนี้- ต้องเชื่อมโยงกับ User-ID ในคอลเล็กชัน นั่นคือ รหัสเอกสารของ เอกสารผู้ใช้ในคอลเล็กชันต้องเป็น UID การตรวจสอบสิทธิ์ Firebase ของผู้ใช้
- เอกสารของผู้ใช้แต่ละรายต้องมีช่อง
email
ที่มีอีเมลของผู้ใช้ ที่อยู่
ไม่บังคับ: ตั้งค่าคอลเล็กชันเทมเพลต
คุณแสดงผลอีเมลได้โดยใช้เทมเพลตแฮนเดิล ในการดำเนินการนี้ คุณจะต้องมีค���ลเล็กชัน Cloud Firestore ที่มี เทมเพลต
โปรดดูหัวข้อใช้เทมเพลตแฮนด์บาร์กับส่วนขยายอีเมลทริกเกอร์ เพื่อดูรายละเอียด
ติดตั้งส่วนขยาย
หากต้องการติดตั้งส่วนขยาย ให้ทำตามขั้นตอนใน ติดตั้งส่วนขยาย Firebase โดยสรุป ให้ทําอย่างใดอย่างหนึ่งต่อไปนี้
คอนโซล Firebase: คลิกปุ่มต่อไปนี้
CLI: เรียกใช้คำสั่งต่อไปนี้
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
เมื่อติดตั้งส่วนขยาย ระบบจะแจ้งให้ระบุ 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 ที่สร้างไว้ล่วงหน้า (โปรดทราบว่าอีเมลของคุณไม่มีสิทธิ์เข้าถึงระบบไฟล์ของเซิร์ฟเวอร์ระบบคลาวด์)
การใช้งานขั้นสูง
ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ส่วนขยายนี้ขั้นสูง