Mit der Erweiterung „Trigger-E-Mail“ (firestore-send-email
) können Sie automatisch E-Mails basierend auf Dokumenten in einer Cloud Firestore-Sammlung senden. Wenn Sie der Sammlung ein Dokument hinzufügen, sendet diese Erweiterung eine E-Mail, die aus den Feldern des Dokuments erstellt wurde. Die Felder der obersten Ebene des Dokuments geben den E-Mail-Absender und die Empfänger an, 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 ein einfaches Beispiel für eine Dokumenterstellung, die diese Erweiterung auslöst:
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 vor der Installation der Erweiterung die folgenden Schritte aus:
Richten Sie den Dienst für ausgehende E-Mails ein.
Wenn Sie die Trigger-E-Mail-Erweiterung installieren, müssen Sie die Verbindungs- und Authentifizierungsdetails eines SMTP-Servers angeben, über den die Erweiterung E-Mails sendet. 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.
Erstellen Sie eine Sammlung von E-Mail-Dokumenten.
Die Erweiterung „Trigger-E-Mail“ überwacht neue Dokumente in einer von Ihnen angegebenen Cloud FirestoreSammlung. Wenn die Erweiterung ein neues Dokument findet, sendet sie eine E-Mail anhand der Felder des Dokuments. Sie können zu diesem Zweck eine beliebige Cloud Firestore-Sammlung verwenden. In den Beispielen auf dieser Seite wird eine Sammlung namens
email
verwendet.Richten Sie Sicherheitsregeln für die Sammlung Ihrer E-Mail-Dokumente ein.
Mit dieser Erweiterung können Sie die E‑Mail-Zustellung direkt über Clientanwendungen auslösen. Sie sollten jedoch den Clientzugriff auf die Sammlung sorgfältig kontrollieren, um potenziellen Missbrauch zu vermeiden. Nutzer sollen nicht in der Lage sein, beliebige E-Mails von der Adresse Ihres Unternehmens aus zu senden.
Die Sicherheitsregeln variieren je nach Anwendung. Sie sollten jedoch immer darauf achten, dass E-Mails nur an die vorgesehenen Empfänger gesendet werden und dass Inhalte in Form freier Texte auf ein Minimum beschränkt werden. 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.
Optional: Richten Sie eine Sammlung „Nutzer“ 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
undbcc
des Nachrichtendokuments angeben. Wenn Sie eine Nutzerdatenbank in Cloud Firestore haben, können Sie alternativ Empfänger anhand der UIDs der Nutzer angeben. Damit dies funktioniert, muss Ihre Sammlung „Nutzer“ die folgenden Kriterien erfüllen:- Die Sammlung muss auf Nutzer-IDs basieren. Das bedeutet, dass die Dokument-ID jedes Nutzerdokuments in der Sammlung die Firebase Authentication-UID des Nutzers sein muss.
- Jedes Nutzerdokument muss ein
email
-Feld mit der E-Mail-Adresse des Nutzers enthalten.
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.
Weitere Informationen findest du unter 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 Console: Klicken Sie auf die folgende Schaltfläche:
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 Dokumenteinschreibungen in der von Ihnen konfigurierten Sammlung. Die E-Mail wird basierend auf dem Inhalt der Felder des Dokuments gesendet. Die Felder der obersten Ebene geben den Absender und die Empfänger der E-Mail an. Das Feld message
enthält die Details der zu sendenden 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 Informationen zum E-Mail-Absender und -Empfänger. Verfügbare Felder sind:
- from: Die E-Mail-Adresse des Absenders. Wenn im Dokument nichts angegeben ist, wird der konfigurierte Parameter „Standard-Absenderadresse“ 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 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 mit den UIDs der Bcc-Empfänger.
- 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 das Feld email
für jede UID lesen, die in den Feldern toUids
, ccUids
und/oder bccUids
angegeben ist.
Nachrichtenfeld
Das Feld message
des Dokuments enthält Rohdaten zur Zustellung der 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“.
Für das Feld message
sind folgende Attribute verfügbar:
- 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. Folgende Nodemailer-Optionen werden unterstützt: UTF-8-String, benutzerdefinierter Inhaltstyp, URL, codierter String, Daten-URI und vorab generierter 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:
- Handlebars-Vorlagen mit der Trigger-E-Mail-Erweiterung verwenden
- Zustellungsstatus mit der Trigger-E-Mail-Erweiterung verwalten