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

Phần mở rộng về 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 trên Cloud Firestore. Đang thêm tài liệu vào bộ sưu tập sẽ kích hoạt tiện ích 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 email và người nhận, bao gồm các tuỳ chọn to, ccbcc (mỗi tuỳ chọn hỗ trợ UID). Chiến lược phát hành đĩa đơn trường message của tài liệu chỉ định các phần tử email khác, chẳng hạn như dòng chủ đề và nội dung email (văn bản thuần tuý hoặc HTML).

Dưới đây là một ví dụ cơ bản về nội dung ghi tài liệu sẽ kích hoạt tiện ích 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ể tuỳ ý định cấu hình tiện ích này để hiển thị email bằng cách sử dụng Mẫu Thanh công cụ.

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

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

  1. Thiết lập dịch vụ thư gửi đi.

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

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

    Tiện ích Trigger Email xử lý các tài liệu mới trong Cloud Firestore mà bạn chỉ định. Khi tìm thấy một tài liệu mới, tiện ích sẽ gửi email dựa trên các trường của tài liệu. Bạn có thể dùng bất cứ dịch vụ nào của Cloud Firestore thu thập cho mục đích này; các ví dụ trên trang này sử dụng tập hợp có tên là email.

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

    Tiện ích này có thể được sử dụng để kích hoạt gửi email trực tiếp từ ứng dụng . 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 để tránh hành vi sai trái có thể xảy ra (bạn không muốn người dùng có thể gửi email tuỳ ý từ địa chỉ công ty của bạn!).

    Quy tắc bảo mật sẽ khác nhau tuỳ theo ứng dụng, nhưng bạn nên hãy luôn đảm bảo rằng email chỉ được gửi đến người nhận mong muốn và hạn chế tối đa nội dung dạng tự do. Mẫu có thể trợ giúp tại đây—bạn có thể 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 khớp với kỳ vọng của bạn về những gì người dùng được phép điều kiện kích hoạt.

  4. Không bắt buộc: Thiết lập một tập hợp người dùng.

    Theo cách sử dụng cơ bản của tiện ích 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ông báo. 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. Để làm việc 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:

    • Tập hợp này phải được khoá theo mã nhận dạng người dùng. Tức là mã tài liệu của mỗi tài liệu người dùng trong tập hợ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 email của người dùng của bạn.
  5. Không bắt buộc: Thiết lập một bộ sưu tập mẫu.

    Bạn có thể kết xuất email bằng cách sử dụng mẫu Tên người dùng. Để thực hiện, bạn cần có một bộ sưu tập Cloud Firestore để chứa mẫu.

    Xem bài viết Sử dụng mẫu Tay điều khiển với tiện ích Email kích hoạt để biết thông tin chi tiết.

Cài đặt tiện ích

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

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

Sử dụng tiện ích

Sau khi cài đặt, tiện ích này sẽ giám sát tất cả hoạt động ghi tài liệu vào bộ sưu tập 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 email và người nhận. Trường message chứa thông tin chi tiết của email cần gửi, bao gồm 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 thư của bạn bằng to và trường message với 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 về người gửi và người nhận email của bạn. 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 "Địa chỉ TỪ 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 "Địa chỉ TRẢ LỜI mặc định" đã định cấu hình .
  • to: 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 của người nhận.
  • toUids: Một mảng chứa UID của người nhận.
  • cc: Một địa chỉ email của một người nhận duy nhất hoặc một mảng chứa nhiều địa chỉ email của người nhận.
  • ccUids: Một mảng chứa UID của người nhận CC.
  • bcc: Một địa chỉ email của một người nhận duy nhất hoặc một mảng chứa nhiều địa chỉ email của người nhận.
  • bccUids: Một mảng chứa UID của người nhận BCC.
  • headers: Đố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 tuỳ chọn toUids, ccUidsbccUids gửi email dựa trên UID của người dùng được khoá cho các địa chỉ email trong một tài liệu trên Cloud Firestore. Để sử dụng các tuỳ chọn người nhận này, bạn cần chỉ định bộ sưu tập Cloud Firestore cho "Tập hợp người dùng" của tiện ích . Sau đó, tiện ích này có thể đọc Trường email cho mỗi UID được chỉ định trong các trường toUids, ccUids và/hoặc bccUids.

Trường thông báo

Trường message của tài liệu chứa thông tin phân phối thô cho . Trường này thường chỉ được điền bởi mã đáng tin cậy chạy trong máy chủ của riêng bạn hoặc Cloud Functions (tham khảo phần "Quy tắc bảo mật và email" phần 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ó.
  • subject: Tiêu đề của email.
  • text: Nội dung văn bản thuần tuý 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 tuỳ chọn của Nodemailer được hỗ trợ: chuỗi utf-8, loại nội dung tuỳ chỉnh, URL, chuỗi mã hoá, URI dữ liệu và nút MIME được tạo trước (xin 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).

Cách sử dụng nâng cao

Tìm hiểu thêm về cách sử dụng tiện ích này nâng cao: