Korzystanie z rozszerzenia E-mail z regułą

Rozszerzenie e-maili z regułą (firestore-send-email) umożliwia automatyczne wysyłanie e-maile na podstawie dokumentów z kolekcji Cloud Firestore. Dodawanie dokumentu do: powoduje, że to rozszerzenie wysyła e-maila utworzonego na podstawie pola dokumentu. Pola najwyższego poziomu dokumentu określają nadawcę e-maila i odbiorców, w tym opcje to, cc i bcc (każdy z nich obsługujący identyfikatory UID). pole message dokumentu określa inne elementy e-maila, takie jak wiersz tematu i treść e-maila (w postaci zwykłego tekstu lub HTML).

Oto podstawowy przykładowy zapis dokumentu, który może wyzwolić 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.',
  },
})

Możesz też opcjonalnie skonfigurować to rozszerzenie tak, aby renderowało e-maile za pomocą Szablony Handlebars.

Konfiguracja wstępna

Zanim zainstalujesz rozszerzenie, wykonaj te czynności:

  1. Skonfiguruj usługę poczty wychodzącej.

    Podczas instalowania rozszerzenia E-mail aktywujący należy określić połączeń i uwierzytelniania serwera SMTP, których rozszerzenie których używa do wysyłania e-maili. Ta opcja jest zwykle świadczona przez usługę dostarczania poczty e-mail takich jak Sendgrid, Mailgun czy Mailchimp Transactional Email, ale może możesz też używać samodzielnie uruchamianego serwera.

  2. Utwórz kolekcję dokumentów e-mail.

    Rozszerzenie E-mail aktywujące nasłuchuje nowych dokumentów w zasobniku Cloud Firestore przez wybrany zbiór. 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.

  3. Skonfiguruj reguły zabezpieczeń zbierania 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 klienta do aby zapobiec ewentualnym nadużyciom (aby użytkownicy mogli dowolne wiadomości e-mail z adresu Twojej firmy).

    Reguły zabezpieczeń różnią się w zależności od aplikacji, ale zawsze sprawdzaj, czy e-maile są wysyłane tylko do właściwych odbiorców. swobodne treści są ograniczone do minimum. Przydają się szablony: może za pomocą reguł zabezpieczeń sprawdzać, czy dane umieszczane w odpowiada Twoim oczekiwaniom dotyczącym tego, co użytkownik może robić .

  4. Opcjonalnie: skonfiguruj kolekcję użytkowników.

    W ramach podstawowego korzystania z tego rozszerzenia określasz adresatów e-maila podając ich adresy e-mail w polach to, cc i bcc w dokument wiadomości. Jeśli natomiast masz bazę danych użytkowników w Cloud Firestore, możesz określić adresatów za pomocą atrybutu Identyfikatory UID. Do tego celu tak, kolekcja użytkowników musi spełniać te kryteria:

    • Kolekcja musi być oparta na identyfikatorach użytkowników. Oznacza to, że identyfikator każdego dokumentu dokument użytkownika w kolekcji musi być identyfikatorem UID użytkownika Firebase Authentication.
    • Każdy dokument użytkownika musi zawierać pole email zawierające adres e-mail użytkownika adresu.
  5. Opcjonalnie: skonfiguruj kolekcję szablonów.

    Możesz renderować e-maile za pomocą szablonów paska sterowania. Aby to zrobić, potrzebujesz kolekcji Cloud Firestore zawierającej Twoje szablonów.

    Więcej informacji znajdziesz w artykule Korzystanie z szablonów Handlebars w rozszerzeniu Trigger Email.

Zainstaluj rozszerzenie

Aby zainstalować to rozszerzenie, wykonaj czynności opisane na Zainstaluj Firebase Extension stronę. Wykonaj jedną z tych czynności:

  • Konsola Firebase: kliknij ten przycisk:

    Instalowanie rozszerzenia Trigger Email

  • Interfejs wiersza poleceń: uruchom to polecenie:

    firebase ext:install firebase/firestore-send-email --project=projectId-or-alias

Po zainstalowaniu rozszerzenia zostanie wyświetlony monit o określenie serwera SMTP. informacje o połączeniu i skonfigurowane wcześniej zbiory Cloud Firestore.

Używanie rozszerzenia

Po zainstalowaniu rozszerzenie będzie monitorować wszystkie zapisy dokumentów w skonfigurowanej przez Ciebie kolekcji. Poczta e-mail jest dostarczana na podstawie zawartości pola dokumentu. Pola najwyższego poziomu określają nadawcę i odbiorców. Pole message zawiera informacje o e-mailu do dostarczenia. łącznie z treścią e-maila.

Przykład: Wyślij 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 dokumentu zawierają nadawcę i adresata e-maila i informacjami o nich. Dostępne pola:

  • from: adres e-mail nadawcy. Jeśli nie określono tego w dokumencie, używany jest skonfigurowany „Domyślny adres FROM” .
  • replyTo: zwrotny adres e-mail. Jeśli nie jest określony w dokumencie, używa skonfigurowanego parametru „Default REPLY-TO address”.
  • 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.
  • DW: pojedynczy adres e-mail odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
  • ccUids: tablica zawierająca identyfikatory UID odbiorców CC.
  • UDW: pojedynczy adres e-mail odbiorcy lub tablica zawierająca wiele adresów e-mail odbiorców.
  • bccUids: tablica zawierająca identyfikatory UID odbiorców UDW.
  • headers: obiekt dodatkowych pól nagłówka (np. {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

UWAGA: opcje toUids, ccUids i bccUids pozwalają dostarczać e-maile na podstawie identyfikatory UID użytkowników przypisane do adresów e-mail w dokumencie Cloud Firestore. Aby użyć funkcji tych opcji odbiorcy, musisz określić kolekcję Cloud Firestore „kolekcję Użytkownicy” rozszerzenia; . Rozszerzenie może wtedy odczytać 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 e-maila, jeśli taki istnieje.
  • subject: temat e-maila.
  • text: zwykły tekst e-maila.
  • 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: