Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Sử dụng tiện ích mở rộng Email kích hoạt

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Tiện ích mở rộng Email kích hoạt ( firestore-send-email ) cho phép bạn tự động gửi email dựa trên các tài liệu trong bộ sưu tập Cloud Firestore. Việc thêm tài liệu vào bộ sưu tập sẽ kích hoạt tiện ích mở rộng này gửi email được tạo từ các trường của tài liệu. Các trường cấp cao nhất của tài liệu chỉ định người gửi và người nhận email, bao gồm các tùy chọn to , ccbcc (mỗi tùy chọn hỗ trợ UID). Trường message của tài liệu chỉ định các phần tử email khác, như dòng tiêu đề và nội dung email (bản rõ hoặc HTML).

Dưới đây là một tài liệu mẫu cơ bản viết sẽ kích hoạt tiện ích mở rộng này:

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

Bạn cũng có thể tùy chọn cấu hình tiện ích mở rộng này để hiển thị email bằng các mẫu Handlebars .

Cài đặt trước thiết lập

Trước khi bạn cài đặt tiện ích mở rộng, hãy hoàn thành các bước sau:

  1. Thiết lập dịch vụ thư đi của bạn.

    Khi bạn cài đặt tiện ích mở rộng Email kích hoạt, bạn sẽ cần chỉ định chi tiết kết nối và xác thực của máy chủ SMTP mà tiện ích này sử dụng để gửi email. Điều này thường được cung cấp bởi một dịch vụ gửi email như Sendgrid, Mailgun hoặc Mailchimp Transactional Email, nhưng nó cũng có thể là một máy chủ do chính bạn điều hành.

  2. Tạo một bộ sưu tập tài liệu email.

    Phần mở rộng Email kích hoạt lắng nghe các tài liệu mới trong bộ sưu tập Cloud Firestore mà bạn chỉ định. Khi tìm thấy tài liệu mới, tiện ích mở rộng sẽ gửi email dựa trên các trường của tài liệu. Bạn có thể sử dụng bất kỳ bộ sưu tập Cloud Firestore nào cho mục đích này; các ví dụ trên trang này sử dụng một bộ sưu tập có tên email .

  3. Thiết lập các quy tắc bảo mật cho bộ sưu tập tài liệu email của bạn.

    Phần mở rộng này có thể được sử dụng để kích hoạt gửi email trực tiếp từ các ứng dụng khách. Tuy nhiên, bạn nên kiểm soát cẩn thận quyền truy cập của khách hàng vào bộ sưu tập để tránh bị lạm dụng tiềm năng (bạn không muốn người dùng có thể gửi email tùy ý từ địa chỉ công ty của bạn!).

    Các quy tắc bảo mật sẽ khác nhau giữa các ứng dụng, nhưng bạn phải luôn đảm bảo rằng email chỉ được gửi đến những người nhận dự kiến ​​và nội dung dạng tự do được giữ ở mức tối thiểu. Mẫu có thể trợ giúp tại đây — bạn có thể sử dụng các quy tắc bảo mật để xác minh rằng dữ liệu đang được điền vào mẫu phù hợp với mong đợi của bạn về những gì người dùng được phép kích hoạt.

  4. Tùy chọn: Thiết lập tập hợp người dùng.

    Theo cách sử dụng cơ bản của tiện ích mở rộng này, bạn chỉ định người nhận email bằng cách chỉ định địa chỉ email của họ trong các trường to , ccbcc của tài liệu thư. Thay vào đó, nếu bạn có cơ sở dữ liệu người dùng trong Cloud Firestore, bạn có thể chỉ định người nhận bằng UID của người dùng. Để điều này hoạt động, tập hợp người dùng của bạn phải đáp ứng các tiêu chí sau:

    • Bộ sưu tập phải được khóa trên ID người dùng. Nghĩa là, ID tài liệu của mỗi tài liệu người dùng trong bộ sưu tập phải là UID xác thực Firebase của người dùng.
    • Mỗi tài liệu người dùng phải có một trường email chứa địa chỉ email của người dùng.
  5. Tùy chọn: Thiết lập bộ sưu tập mẫu.

    Bạn có thể kết xuất email bằng các mẫu Handlebars . Để làm như vậy, bạn sẽ cần một bộ sưu tập Cloud Firestore để chứa các mẫu của bạn.

    Xem phần Sử dụng mẫu Handlebars với phần mở rộng Email kích hoạt để biết thêm chi tiết.

Cài đặt tiện ích mở rộng

Để cài đặt tiện ích, hãy làm theo các bước trên trang Cài đặt tiện ích mở rộng Firebase . Tóm lại, hãy thực hiện một trong những thao tác sau:

Khi cài đặt tiện ích mở rộng, bạn sẽ được nhắc chỉ định thông tin kết nối SMTP của mình và các bộ sưu tập Cloud Firestore mà bạn đã thiết lập trước đó.

Sử dụng tiện ích mở rộng

Sau khi cài đặt, tiện ích mở rộng này giám sát tất cả các lần ghi tài liệu vào bộ sưu tập mà bạn đã cấu hình. Email được gửi dựa trên nội dung các trường của tài liệu. Các trường cấp cao nhất chỉ định người gửi và người nhận email. Trường message chứa các chi tiết của email cần gửi, bao gồm cả nội dung email.

Ví dụ: Gửi email

Để gửi một tin nhắn đơn giản, hãy thêm một tài liệu vào bộ sưu tập tin nhắn của bạn với trường to và trường message có nội dung sau:

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

Trường người gửi và người nhận

Các trường cấp cao nhất của tài liệu cung cấp thông tin người gửi và người nhận email. Các trường có sẵn là:

  • from: Địa chỉ email của người gửi. Nếu không được chỉ định trong tài liệu, hãy sử dụng tham số "Địa chỉ FROM mặc định" đã định cấu hình.
  • replyTo: Địa chỉ email trả lời. Nếu không được chỉ định trong tài liệu, hãy sử dụng tham số "Địa chỉ REPLY-TO mặc định" đã được định cấu hình.
  • tới: Một địa chỉ email người nhận duy nhất hoặc một mảng chứa nhiều địa chỉ email người nhận.
  • toUids: Một mảng chứa các UID của người nhận.
  • cc: Một địa chỉ email người nhận duy nhất hoặc một mảng chứa nhiều địa chỉ email người nhận.
  • ccUids: Một mảng chứa UID người nhận CC.
  • bcc: Một địa chỉ email người nhận duy nhất hoặc một mảng chứa nhiều địa chỉ email người nhận.
  • bccUids: Một mảng chứa UID người nhận BCC.
  • tiêu đề: Một đối tượng của các trường tiêu đề bổ sung (ví dụ: {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"} ).

LƯU Ý: Các tùy chọn toUids , ccUidsbccUids gửi email dựa trên UID của người dùng được khóa vào địa chỉ email trong tài liệu Cloud Firestore. Để sử dụng các tùy chọn người nhận này, bạn cần chỉ định bộ sưu tập Cloud Firestore cho thông số "Bộ sưu tập người dùng" của tiện ích. Sau đó, tiện ích mở rộng có thể đọc trường email cho từng UID được chỉ định trong các trường toUids , ccUids và / hoặc bccUids .

Trường tin nhắn

Trường message của tài liệu chứa thông tin gửi thô cho email. Trường này thường chỉ được điền bởi mã đáng tin cậy chạy trong máy chủ hoặc Chức năng đám mây của riêng bạn (tham khảo phần "Quy tắc bảo mật và gửi email" bên dưới).

Các thuộc tính khả dụng cho trường message là:

  • messageId: Tiêu đề ID thư cho email, nếu có.
  • chủ đề: Chủ đề của email.
  • text: Nội dung văn bản rõ ràng của email.
  • html: Nội dung HTML của email.
  • amp: Nội dung AMP4EMAIL của email.
  • phần đính kèm: Một mảng chứa (các) phần đính kèm; Các tùy chọn Nodemailer được hỗ trợ: chuỗi utf-8, loại nội dung tùy chỉnh, URL, chuỗi được mã hóa, URI dữ liệu và nút MIME được tạo trước (lưu ý rằng email của bạn không có quyền truy cập vào hệ thống tệp của máy chủ đám mây).

Sử dụng nâng cao

Tìm hiểu về cách sử dụng nâng cao hơn của tiện ích mở rộng này: