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). Die Das Feld message des Dokuments gibt die anderen E-Mail-Elemente an, z. B. die Betreffzeile und E-Mail-Text (entweder Klartext oder HTML).

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

Optional können Sie diese Erweiterung so konfigurieren, dass E-Mails mit Handlebars-Vorlagen gerendert werden.

Einrichtung vor der Installation

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

  1. Richten Sie den 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. Dieser wird in der Regel von einem E-Mail-Zustellungsdienst wie Sendgrid, Mailgun oder Mailchimp Transactional Email bereitgestellt. Es kann sich aber auch um einen von Ihnen selbst verwalteten Server handeln.

  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. Wenn die Erweiterung ein neues Dokument findet, sendet sie eine E-Mail anhand der Felder 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 können Sie die E‑Mail-Zustellung direkt über Clientanwendungen auslösen. 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. Mit 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.

    Bei der grundlegenden Verwendung dieser Erweiterung geben Sie die Empfänger einer E-Mail an, indem Sie ihre E-Mail-Adressen in den Feldern to, cc und bcc des Nachrichtendokuments angeben. Wenn Sie eine Nutzerdatenbank in Cloud Firestore haben, können Sie alternativ Empfänger anhand der UIDs der Nutzer angeben. In diesem Fall funktioniert, muss Ihre Nutzersammlung folgende Kriterien erfüllen:

    • Die Sammlung muss auf Nutzer-IDs basieren. 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.

    Sie können E-Mails mit Handlebars-Vorlagen rendern. Dazu benötigen Sie eine Cloud Firestore-Sammlung, die Ihre Vorlagen enthält.

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

Erweiterung installieren

Folgen Sie der Anleitung auf der Seite Firebase Extension installieren, um die Erweiterung zu installieren. Sie haben folgende Möglichkeiten:

  • 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

Bei der Installation der Erweiterung werden Sie aufgefordert, Ihren SMTP-Server anzugeben. Verbindungsinformationen und die Cloud Firestore-Sammlungen, die Sie zuvor eingerichtet haben.

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 Empfänger. Das Feld message enthält die Details der E-Mail, die zugestellt werden soll. einschließlich des E-Mail-Textes.

Beispiel: E-Mail senden

Wenn Sie eine einfache Nachricht senden möchten, fügen Sie Ihrer Nachrichtensammlung ein Dokument mit einem to hinzu und ein message-Feld mit folgendem Inhalt:

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. Folgende Felder sind verfügbar:

  • 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 nicht angegeben, wird die konfigurierte „Standard-REPLY-TO-Adresse“ verwendet. .
  • to:Eine einzelne Empfänger-E-Mail-Adresse oder ein Array mit mehreren Empfänger-E-Mail-Adressen.
  • 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, das die UIDs der Bcc-Empfänger enthält.
  • headers: Ein Objekt mit zusätzlichen Kopfzeilenfeldern (z. B. {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

HINWEIS: Bei den Optionen toUids, ccUids und bccUids werden E-Mails basierend auf Nutzer-UIDs gesendet, die mit E-Mail-Adressen in einem Cloud Firestore-Dokument verknüpft sind. Wenn Sie diese Empfängeroptionen verwenden möchten, müssen Sie für den Parameter „Nutzersammlung“ der Erweiterung eine Cloud Firestore-Sammlung angeben. 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 in der Regel nur mit vertrauenswürdigem Code ausgefüllt werden, der auf Ihren eigenen Servern oder in Cloud Functions ausgeführt wird. Weitere Informationen finden Sie unten im Abschnitt „Sicherheitsregeln und E-Mail-Versand“.

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: