Trigger-E-Mail-Erweiterung verwenden

Mit der Trigger-E-Mail-Erweiterung (firestore-send-email) können Sie E-Mails basierend auf Dokumenten in einer Cloud Firestore-Sammlung. Dokument wird hinzugefügt zu löst die Sammlung das Senden einer E-Mail aus, die auf der Dokument-Felder. In den Feldern der obersten Ebene des Dokuments werden der E-Mail-Absender und Empfänger, einschließlich der Optionen to, cc und bcc (jeweils unterstützen UIDs). Im Feld message des Dokuments werden die anderen E-Mail-Elemente wie Betreffzeile und E-Mail-Text (entweder Nur-Text oder HTML) angegeben.

Hier ist ein einfaches Beispieldokument, das diese Erweiterung auslösen würde:

admin.firestore().collection('mail').add({
  to: 'someone@example.com',
  message: {
    subject: 'Hello from Firebase!',
    html: 'This is an <code>HTML</code> email body.',
  },
})

Sie können diese Erweiterung auch so konfigurieren, dass E-Mails mit der folgenden Methode gerendert werden: Handlebars-Vorlagen verwenden.

Einrichtung vor der Installation

Führen Sie diese Schritte aus, bevor Sie die Erweiterung installieren:

  1. Richten Sie Ihren Dienst für ausgehende E-Mails ein.

    Wenn Sie die Trigger-E-Mail-Erweiterung installieren, müssen Sie die die Verbindungs- und Authentifizierungsdetails eines SMTP-Servers, verwendet, um E-Mails zu senden. Dies wird in der Regel von einem E-Mail-Zustelldienst bereitgestellt. wie Sendgrid, Mailgun oder Mailchimp Transaktions-E-Mails, auch ein selbst betriebener Server.

  2. Erstellen Sie eine Sammlung von E-Mail-Dokumenten.

    Die Trigger-E-Mail-Erweiterung wartet auf neue Dokumente in einem Cloud Firestore von Ihnen festgelegte Sammlung. Wird ein neues Dokument gefunden, sendet eine E-Mail basierend auf den Feldern des Dokuments. Du kannst eine beliebige Cloud Firestore verwenden Erhebung zu diesem Zweck In den Beispielen auf dieser Seite wird eine Sammlung mit dem Namen email.

  3. Legen Sie Sicherheitsregeln für die Sammlung von E-Mail-Dokumenten fest.

    Mit dieser Erweiterung kann die E-Mail-Zustellung direkt vom Kunden ausgelöst werden Anwendungen. Sie sollten den Clientzugriff jedoch sorgfältig kontrollieren. um potenziellen Missbrauch zu vermeiden. Nutzer sollen Ihnen willkürliche E-Mails von der Adresse Ihres Unternehmens senden!).

    Die Sicherheitsregeln unterscheiden sich von Anwendung zu Anwendung, aber Sie sollten stellen Sie immer sicher, dass E-Mails nur an die beabsichtigten Empfänger und Inhalte im freien Format auf ein Minimum beschränkt. Vorlagen können hier hilfreich sein. Mithilfe von Sicherheitsregeln können Sie prüfen, ob die Daten, die in die Vorlage eingefügt werden, Ihren Erwartungen entsprechen, was ein Nutzer auslösen darf.

  4. Optional: Richten Sie eine Nutzersammlung ein.

    Im Rahmen der grundlegenden Verwendung dieser Erweiterung geben Sie die Empfänger einer E-Mail an indem Sie die entsprechenden E-Mail-Adressen in die Felder to, cc und bcc von des Nachrichtendokuments. Wenn Sie alternativ eine Nutzerdatenbank in Cloud Firestore, können Sie Empfänger mithilfe der UIDs. In diesem Fall funktioniert, muss Ihre Nutzersammlung folgende Kriterien erfüllen:

    • Die Sammlung muss anhand von Nutzer-IDs codiert werden. Das heißt, die Dokument-ID jedes Nutzerdokument in der Sammlung muss die Firebase Authentication-UID des Nutzers sein.
    • Jedes Nutzerdokument muss das Feld email haben, das die E-Mail-Adresse des Nutzers enthält Adresse.
  5. Optional: Richten Sie eine Vorlagensammlung ein.

    Du kannst E-Mails mit Handlebars-Vorlagen rendern. Dazu benötigen Sie eine Cloud Firestore-Sammlung mit Ihren Vorlagen.

    Siehe Handlebars-Vorlagen mit der Trigger-E-Mail-Erweiterung verwenden .

Erweiterung installieren

Um die Erweiterung zu installieren, folgen Sie der Anleitung auf der Firebase Extension installieren Seite. Führen Sie einen der folgenden Schritte aus:

  • Firebase-Konsole:Klicken Sie auf die folgende Schaltfläche:

    Trigger-E-Mail-Erweiterung installieren

  • Befehlszeile: Führen Sie den folgenden Befehl aus:

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

Wenn Sie die Erweiterung installieren, werden Sie aufgefordert, Ihre SMTP-Verbindungsinformationen und die zuvor eingerichteten Cloud Firestore-Sammlungen anzugeben.

Erweiterung verwenden

Nach der Installation überwacht diese Erweiterung alle Schreibvorgänge in den Sammlung, die Sie konfiguriert haben. Die E-Mail wird basierend auf dem Inhalt der Dokument-Felder. In den Feldern der obersten Ebene werden der Absender und die Empfänger der E-Mail angegeben. Das Feld message enthält die Details der zuzustellenden E-Mail, einschließlich des E-Mail-Texts.

Beispiel: E-Mail senden

Wenn Sie eine einfache Nachricht senden möchten, fügen Sie Ihrer Sammlung „messages“ ein Dokument mit einem to-Feld und einem message-Feld mit dem folgenden Inhalt hinzu:

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.',
}

Absender- und Empfängerfelder

Die Felder der obersten Ebene des Dokuments enthalten den E-Mail-Absender und -Empfänger Informationen. Verfügbare Felder sind:

  • from:E-Mail-Adresse des Absenders Wenn im Dokument nicht angegeben, wird die konfigurierte „Standard-FROM-Adresse“ verwendet. .
  • replyTo:Die Antwort-E-Mail-Adresse. Wenn im Dokument keine Angabe erfolgt, wird der konfigurierte Parameter „Standard-REPLY-TO-Adresse“ verwendet.
  • to: Eine einzelne E-Mail-Adresse des Empfängers oder ein Array mit mehreren E-Mail-Adressen des Empfängers.
  • toUids: Ein Array mit den UIDs der Empfänger.
  • Cc:Eine E-Mail-Adresse eines einzelnen Empfängers oder ein Array mit den E-Mail-Adressen mehrerer Empfänger.
  • ccUids:Ein Array, das die CC-Empfänger-UIDs enthält.
  • bcc: Eine einzelne E-Mail-Adresse des Empfängers oder ein Array mit mehreren E-Mail-Adressen des Empfängers.
  • bccUids: Ein Array mit den UIDs der Bcc-Empfänger.
  • headers:Ein Objekt mit zusätzlichen Headerfeldern (z. B. {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

HINWEIS: Mit den Optionen toUids, ccUids und bccUids werden E-Mails basierend auf Nutzer-UIDs, die an E-Mail-Adressen in einem Cloud Firestore-Dokument gebunden sind. Um diese Empfängeroptionen erfüllt, müssen Sie eine Cloud Firestore-Sammlung für „Sammlung „Nutzer“ der Erweiterung . Die Erweiterung kann dann die email für jede UID, die in den Feldern toUids, ccUids und/oder bccUids angegeben ist.

Nachrichtenfeld

Das Feld message des Dokuments enthält unbearbeitete Lieferinformationen für das E-Mail. Dieses Feld sollte im Allgemeinen nur von vertrauenswürdigem Code ausgefüllt werden, der in Ihre eigenen Server oder Cloud Functions-Funktionen nutzen (siehe "Sicherheitsregeln und E-Mail" unten).

Verfügbare Eigenschaften für das Feld message:

  • messageId:Ein Nachrichten-ID-Header für die E-Mail, falls vorhanden.
  • subject: Der Betreff der E-Mail.
  • text: Der Klartextinhalt der E-Mail.
  • html:Der HTML-Inhalt der E-Mail.
  • amp: Der AMP4EMAIL-Inhalt der E-Mail.
  • attachments:Ein Array mit Anhängen. Unterstützte Nodemailer-Optionen: utf-8-String, benutzerdefinierter Inhaltstyp, URL, codierter String, Daten-URI und vorgenerierter MIME-Knoten. Beachten Sie, dass Ihre E-Mail keinen Zugriff auf das Dateisystem des Cloud-Servers hat.

Erweiterte Nutzung

Weitere Informationen zur erweiterten Verwendung dieser Erweiterung: