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 w dokumencie określają nadawcę i odbiorców e-maila, w tym opcje to
, cc
i bcc
(każda z nich obsługuje identyfikatory UID). Pole message
dokumentu określa inne elementy e-maila, takie jak nagłówek i treść e-maila (w formacie tekstowym lub HTML).
Oto przykład podstawowych zapisów dokumentu, które mogą wywołać to rozszerzenie:
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 skonfigurować to rozszerzenie tak, aby renderowało e-maile za pomocą szablonów Handlebars.
Konfiguracja przed instalacją
Przed zainstalowaniem rozszerzenia 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 jest to usługa dostarczania e-maili, taka jak Sendgrid, Mailgun czy Mailchimp Transactional Email, ale może to być też serwer, który obsługujesz samodzielnie.
Utwórz kolekcję dokumentów e-mail.
Rozszerzenie Trigger Email wykrywa nowe dokumenty w określonej przez Ciebie kolekcji Cloud Firestore. Gdy znajdzie nowy dokument, rozszerzenie wysyła e-maila na podstawie pól dokumentu. Do tego celu możesz użyć dowolnej kolekcji Cloud Firestore. Przykłady na tej stronie korzystają z kolekcji o nazwie
email
.Skonfiguruj reguły bezpieczeństwa dla kolekcji dokumentów e-mail.
Za pomocą tego rozszerzenia można wywołać wysyłanie e-maili bezpośrednio z aplikacji klienta. Należy jednak dokładnie kontrolować dostęp klientów do kolekcji, aby uniknąć potencjalnego nadużycia (nie chcesz przecież, aby użytkownicy mogli wysyłać dowolne e-maile z adresu Twojej firmy).
Reguły bezpieczeństwa różnią się w zależności od aplikacji, ale zawsze należy pamiętać, aby e-maile były wysyłane tylko do właściwych odbiorców, a treści w formacie wolnym ograniczać do minimum. W tym przypadku pomocne mogą być szablony. Za pomocą reguł zabezpieczeń możesz sprawdzić, czy dane wypełniane w szablonie są zgodne z Twoimi oczekiwaniami dotyczącymi tego, co użytkownik może aktywować.
Opcjonalnie: skonfiguruj kolekcję użytkowników.
W ramach podstawowego użycia tego rozszerzenia możesz określić odbiorców e-maila, podając ich adresy e-mail w polach
to
,cc
ibcc
w dokumencie wiadomości. Jeśli masz bazę danych użytkowników w Cloud Firestore, możesz określić odbiorców, podając ich identyfikatory UID. Aby to działało, kolekcja użytkowników musi spełniać te kryteria:- Kolekcja musi być posortowana według klucza identyfikatorów użytkowników. Oznacza to, że identyfikator dokumentu każdego dokumentu użytkownika w kolekcji musi być identyczny z identyfikatorem Firebase Authentication użytkownika.
- Każdy dokument użytkownika musi zawierać pole
email
z adresem e-mail użytkownika.
Opcjonalnie: skonfiguruj kolekcję szablonów.
E-maile możesz renderować za pomocą szablonów Handlebars. W tym celu musisz utworzyć kolekcję Cloud Firestore, która będzie zawierać Twoje szablony.
Więcej informacji znajdziesz w artykule Korzystanie z szablonów Handlebars w rozszerzeniu Trigger Email.
Instalowanie rozszerzenia
Aby zainstalować rozszerzenie, wykonaj czynności opisane na stronie Instalowanie rozszerzenia Firebase Extension. Podsumowując, wykonaj jedną z tych czynności:
Firebase konsoli: kliknij ten przycisk:
Interfejs wiersza poleceń: uruchom to polecenie:
firebase ext:install firebase/firestore-send-email --project=projectId-or-alias
Podczas instalacji rozszerzenia pojawi się prośba o podanie informacji o połączeniu SMTP oraz wcześniej skonfigurowanych kolekcji Cloud Firestore.
Korzystanie z rozszerzenia
Po zainstalowaniu to rozszerzenie będzie monitorować wszystkie zapisy dokumentów w skonfigurowanej przez Ciebie kolekcji. E-mail jest wysyłany na podstawie zawartości pól dokumentu. Pola najwyższego poziomu określają nadawcę i odbiorców e-maila. Pole message
zawiera informacje o wysyłanej wiadomości e-mail, w tym jej treść.
Przykład: wysyłanie e-maila
Aby wysłać prostą wiadomość, dodaj dokument do kolekcji wiadomości z polem to
i polem message
zawierającym te 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 adresata
Pola najwyższego poziomu w dokumencie 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żywany jest skonfigurowany parametr „Domyślny adres nadawcy”.
- replyTo: zwrotny adres e-mail. Jeśli nie jest określony w dokumencie, używa skonfigurowanego parametru „Default REPLY-TO address”.
- to: adres e-mail pojedynczego odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- toUids: tablica zawierająca identyfikatory UID odbiorców.
- cc: adres e-mail pojedynczego odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- ccUids: tablica zawierająca identyfikatory UID adresatów w polu DW.
- bcc: adres e-mail pojedynczego odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
- bccUids: tablica zawierająca identyfikatory UID odbiorców w kopii UDW.
- headers: obiekt dodatkowych pól nagłówka (na przykład
{"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}
).
UWAGA: opcje toUids
, ccUids
i bccUids
wysyłają e-maile na podstawie identyfikatorów użytkowników powiązanych z adresami e-mail w dokumencie Cloud Firestore. Aby korzystać z tych opcji odbiorców, musisz określić kolekcję Cloud Firestore dla parametru „Kolekcja użytkowników” rozszerzenia. Rozszerzenie może odczytać pole email
dla każdego identyfikatora UID określonego w polach toUids
, ccUids
lub bccUids
.
Pole wiadomości
Pole message
w dokumencie zawiera nieprzetworzone informacje o dostawie e-maila. To pole powinno być wypełniane tylko przez zaufany kod działający na Twoich serwerach lub w Cloud Functions (patrz sekcja „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 istnieje).
- subject: temat e-maila.
- text: treść e-maila w postaci zwykłego tekstu.
- html: treść HTML e-maila.
- amp: treść AMP4EMAIL e-maila.
- 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 Twój e-mail nie ma dostępu do systemu plików serwera w chmurze).
Zaawansowane zastosowanie
Dowiedz się więcej o zaawansowanym korzystaniu z tego rozszerzenia:
- Używanie szablonów Handlebars w rozszerzeniu Trigger Email
- Zarządzanie stanem dostarczania za pomocą rozszerzenia Trigger Email