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

Tiện ích mở rộng Trigger Email ( 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 UID hỗ trợ). Trường message của tài liệu chỉ định các thành phần email khác, như dòng chủ đề và nội dung email (văn bản gốc hoặc HTML).

Đây là một ví dụ viết tài liệu cơ bản 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 ý định cấu hình tiện ích mở rộng này để hiển thị email bằng các mẫu Tay cầm .

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

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

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

    Khi cài đặt tiện ích mở rộng Trigger Email, 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 mở rộng sử dụng để gửi email. Điều này thường được cung cấp bởi dịch vụ gửi email như Sendgrid, Mailgun hoặc Email giao dịch Mailchimp, nhưng nó cũng có thể là máy chủ do bạn tự điều hành.

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

    Tiện ích mở rộng Trigger Email sẽ 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 bộ sưu tập có tên email .

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

    Tiện ích mở rộng này có thể được sử dụng để kích hoạt gửi email trực tiếp từ ứ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 khả năng bị lạm dụ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 tùy theo từng ứ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ự định và nội dung dạng tự do được giữ ở mức tối thiểu. Mẫu có thể trợ giúp ở đâ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 đượ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 bộ sưu tậ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 to , ccbcc của tài liệu thư. Ngoài ra, 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. Để tính năng này hoạt động, bộ sưu tậ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 theo ID người dùng. Nghĩa là, ID tài liệu của từng 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ó 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ể hiển thị email bằng cách sử dụng mẫu Tay cầm . Để làm như vậy, bạn sẽ cần bộ sưu tập Cloud Firestore để chứa các mẫu của mình.

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

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

Để cài đặt tiện ích mở rộng, 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 các 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 và 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 sẽ giám sát tất cả tài liệu ghi vào bộ sưu tập mà bạn đã định cấu hình. Email được gửi dựa trên nội dung của 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 thông tin chi tiết về 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 tài liệu vào bộ sưu tập tin nhắn của bạn bằng 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ỉ mặc định TỪ" đã được đị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ỉ TRẢ LỜI Mặc định" đã được định cấu hình.
  • tới: Một địa chỉ email người nhận hoặc một mảng chứa nhiều địa chỉ email người nhận.
  • toUids: Một mảng chứa UID của người nhận.
  • cc: Một địa chỉ email người nhận 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 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 đề: Đố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 người dùng được khóa theo đị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 tham số "Bộ sưu tập người dùng" của tiện ích mở rộng. 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ằng mã đáng tin cậy chạy trong máy chủ của riêng bạn hoặc Chức năng đám mây (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 có sẵn 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 gốc của email.
  • html: Nội dung HTML của email.
  • amp: Nội dung AMP4EMAIL của email.
  • tệp đính kèm: Một mảng chứa (các) tệp đính kèm; Các tùy chọn của 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: