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 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
, cc
và bcc
(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 tiêu đề
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:
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 có thể là máy chủ do bạn tự điều hành.
Tạo bộ sưu tập tài liệu email.
Tiện ích Email kích hoạt sẽ xử lý 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 Cloud Firestore bất kỳ 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
.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 sẽ được phép điều kiện kích hoạt.
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
,cc
vàbcc
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 tên người dù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 Firebase Authentication 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.
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 việc này, 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 Firebase Extension . Tóm lại, hãy làm theo một trong những cách sau:
Bảng điều khiển Firebase: Nhấp vào nút sau:
CLI: Chạy lệnh sau:
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
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à tập hợp 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
, ccUids
và bccUids
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:
- Sử dụng mẫu Tay cầm cùng với phần mở rộng Email kích hoạt
- Quản lý trạng thái gửi bằng phần mở rộng Email kích hoạt