Rozszerzenie Trigger Email (firestore-send-email) umożliwia automatyczne wysyłanie
e-maili na podstawie dokumentów w kolekcji Cloud Firestore. Dodanie dokumentu do kolekcji powoduje, że to rozszerzenie wysyła e-maila utworzonego na podstawie pól dokumentu. Pola najwyższego poziomu dokumentu określają nadawcę i
odbiorców e-maila, w tym to, cc, i bcc opcje (każda z nich obsługuje identyfikatory UID). Pole message dokumentu określa inne elementy e-maila, takie jak wiersz tematu i treść e-maila (zwykły tekst lub HTML).
Oto podstawowy przykład zapisu dokumentu, który spowoduje uruchomienie tego rozszerzenia:
admin.firestore().collection('mail').add({
to: 'someone@example.com',
message: {
subject: 'Hello from Firebase!',
html: 'This is an <code>HTML</code> email body.',
},
})
Opcjonalnie możesz też skonfigurować to rozszerzenie tak, aby renderowało e-maile za pomocą Handlebars szablonów.
Konfiguracja przed instalacją
Zanim zainstalujesz rozszerzenie, wykonaj te czynności:
Skonfiguruj usługę poczty wychodzącej.
Podczas instalowania rozszerzenia Trigger Email musisz podać szczegóły połączenia i uwierzytelniania serwera SMTP, którego rozszerzenie używa do wysyłania e-maili. Zwykle są one udostępniane przez usługę dostarczania e-maili, taką jak Sendgrid, Mailgun lub Mailchimp Transactional Email, ale może to być też serwer, który sam obsługujesz.
Utwórz kolekcję dokumentów e-mail.
Rozszerzenie Trigger Email nasłuchuje nowych dokumentów w Cloud Firestore kolekcji, którą określisz. Gdy znajdzie nowy dokument, wysyła e-maila na podstawie jego pól. Do tego celu możesz użyć dowolnej Cloud Firestore kolekcji. W przykładach na tej stronie używamy kolekcji o nazwie
email.Skonfiguruj reguły bezpieczeństwa dla kolekcji dokumentów e-mail.
To rozszerzenie może służyć do wywoływania dostarczania e-maili bezpośrednio z aplikacji klienckich. Musisz jednak starannie kontrolować dostęp klientów do kolekcji, aby uniknąć potencjalnego nadużycia (nie chcesz, aby użytkownicy mogli wysyłać dowolne e-maile z adresu Twojej firmy).
Reguły bezpieczeństwa będą się różnić w zależności od aplikacji, ale zawsze musisz się upewnić, że e-maile są wysyłane tylko do zamierzonych odbiorców, a treść w dowolnym formacie jest ograniczona do minimum. Szablony mogą w tym pomóc – możesz użyć reguł bezpieczeństwa, aby sprawdzić, czy dane wypełniane w szablonie są zgodne z Twoimi oczekiwaniami co do tego, co użytkownik powinien móc wywołać.
Opcjonalnie: skonfiguruj kolekcję użytkowników.
W podstawowym przypadku użycia tego rozszerzenia odbiorców e-maila określasz podając ich adresy e-mail w polach
to,ccibccdokumentu wiadomości. Jeśli masz bazę danych użytkowników w Cloud Firestore, możesz też określić odbiorców za pomocą identyfikatorów UID użytkowników. Aby to działało, kolekcja użytkowników musi spełniać te kryteria:- Kolekcja musi być kluczowana według identyfikatorów użytkowników. Oznacza to, że identyfikator dokumentu każdego dokumentu użytkownika w kolekcji musi być identyfikatorem UID użytkownika Firebase Authentication.
- Każdy dokument użytkownika musi mieć pole
emailzawierające adres e-mail użytkownika.
Opcjonalnie: skonfiguruj kolekcję szablonów.
E-maile możesz renderować za pomocą szablonów Handlebars. Aby to zrobić, potrzebujesz kolekcji Cloud Firestore, która będzie zawierać Twoje szablony.
Więcej informacji znajdziesz w artykule Używanie szablonów Handlebars z rozszerzeniem Trigger Email.
Instalowanie rozszerzenia
Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie Firebase Extension. W skrócie wykonaj jedną z tych czynności:
Firebase konsola: kliknij ten przycisk:
Interfejs wiersza poleceń: uruchom to polecenie:
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
Podczas instalowania rozszerzenia pojawi się prośba o podanie informacji o połączeniu SMTP i kolekcji Cloud Firestore skonfigurowanych wcześniej.
Korzystanie z rozszerzenia
Po instalacji to rozszerzenie monitoruje wszystkie zapisy dokumentów w skonfigurowanej przez Ciebie kolekcji. E-mail jest dostarczany na podstawie zawartości pól dokumentu. Pola najwyższego poziomu określają nadawcę i odbiorców e-maila. Pole message zawiera szczegóły e-maila do dostarczenia, w tym treść e-maila.
Przykład: wysyłanie e-maila
Aby wysłać prostą wiadomość, dodaj do kolekcji wiadomości dokument z polem to i polem message o tej treści:
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.',
}
Pola nadawcy i odbiorcy
Pola najwyższego poziomu dokumentu zawierają informacje o nadawcy i odbiorcy e-maila. Dostępne pola:
- from: adres e-mail nadawcy. Jeśli nie jest określony w dokumencie, używa skonfigurowanego parametru „Domyślny adres OD”.
- replyTo: adres e-mail, na który należy odpowiedzieć. Jeśli nie jest określony w dokumencie, używa skonfigurowanego parametru „Domyślny adres ODPOWIEDŹ-DO”.
- to: pojedynczy adres e-mail odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- toUids: tablica zawierająca identyfikatory UID odbiorców.
- cc: pojedynczy adres e-mail odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- ccUids: tablica zawierająca identyfikatory UID odbiorców w polu DW.
- bcc: pojedynczy adres e-mail odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- bccUids: tablica zawierająca identyfikatory UID odbiorców w polu UDW.
- headers: obiekt dodatkowych pól nagłówka (np.
{"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).
UWAGA: opcje toUids, ccUids i bccUids dostarczają e-maile na podstawie
identyfikatorów UID użytkowników powiązanych z adresami e-mail w dokumencie Cloud Firestore. Aby używać tych opcji odbiorców, musisz określić kolekcję Cloud Firestore dla parametru „Kolekcja użytkowników” rozszerzenia. Rozszerzenie może wtedy odczytać pole
email dla każdego identyfikatora UID określonego w polach toUids, ccUids lub bccUids.
Pole wiadomości
Pole message dokumentu zawiera nieprzetworzone informacje o dostawie e-maila. To pole powinno być zwykle wypełniane tylko przez zaufany kod działający na Twoich serwerach lub w Cloud Functions (więcej informacji znajdziesz w sekcji „Reguły bezpieczeństwa i wysyłanie e-maili” poniżej).
Dostępne właściwości pola message:
- messageId: nagłówek identyfikatora wiadomości e-mail, jeśli występuje.
- subject: temat e-maila.
- text: treść e-maila w postaci zwykłego tekstu.
- html: treść e-maila w formacie HTML.
- amp: treść e-maila w formacie AMP4EMAIL.
- attachments: tablica zawierająca załączniki. Obsługiwane opcje Nodemailer: ciąg znaków UTF-8, niestandardowy typ treści, adres URL, zakodowany ciąg znaków, identyfikator URI danych i wstępnie wygenerowany węzeł MIME (pamiętaj, że e-mail nie ma dostępu do systemu plików serwera w chmurze).
Do wymagających zadań
Więcej informacji o zaawansowanym korzystaniu z tego rozszerzenia:
- Używanie szablonów Handlebars z rozszerzeniem Trigger Email
- Zarządzanie stanem dostawy za pomocą rozszerzenia Trigger Email