Utiliser l'extension Envoyer un e-mail

L'extension Trigger Email (firestore-send-email) vous permet d'envoyer automatiquement des messages e-mails basés sur les documents d'une collection Cloud Firestore. Ajout d'un document à la collection déclenche l'envoi par cette extension d'un e-mail créé à partir de les champs du document. Les champs de premier niveau du document spécifient l'expéditeur et les destinataires de l'e-mail, y compris les options to, cc et bcc (qui acceptent toutes les UID). Le champ message du document spécifie les autres éléments de l'e-mail, tels que la ligne d'objet et le corps de l'e-mail (au format texte brut ou HTML).

Voici un exemple de base d'écriture de document qui déclenchera cette extension:

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

Vous pouvez également configurer cette extension pour afficher des e-mails à l'aide de modèles Handlebars.

Configuration préalable à l'installation

Avant d'installer l'extension, procédez comme suit :

  1. Configurez votre service de messagerie sortante.

    Lorsque vous installez l'extension Trigger Email, vous devez spécifier les informations de connexion et d'authentification d'un serveur SMTP, que l'extension utilise pour envoyer des e-mails. Il s'agit généralement d'un service d'envoi d'e-mails tel que Sendgrid, Mailgun ou Mailchimp Transactional Email, mais il peut également s'agir d'un serveur que vous gérez vous-même.

  2. Créez une collection de documents envoyés par e-mail.

    L'extension Trigger Email écoute les nouveaux documents dans un Cloud Firestore. que vous spécifiez. Lorsqu'il trouve un nouveau document, l'extension envoie un e-mail en fonction des champs du document. Vous pouvez utiliser n'importe quel Cloud Firestore une collecte à cette fin ; les exemples de cette page utilisent une collection nommée email.

  3. Configurez des règles de sécurité pour votre collection de documents d'e-mails.

    Cette extension permet de déclencher la distribution des e-mails directement depuis le client. applications. Vous devez toutefois contrôler soigneusement l'accès des clients collecte d'images pour éviter d'éventuels abus (les utilisateurs ne doivent pas envoyer des e-mails arbitraires provenant de l'adresse de votre entreprise).

    Les règles de sécurité varient d'une application à l'autre, mais vous devez toujours vous assurer que les e-mails ne sont envoyés qu'aux destinataires prévus et que le contenu libre est limité au minimum. Les modèles peuvent vous aider : vous pouvez utiliser des règles de sécurité pour vérifier que les données renseignées dans le modèle correspondent à vos attentes concernant les déclencheurs autorisés pour un utilisateur.

  4. Facultatif: Configurez une collection d'utilisateurs.

    Sous "Utilisation de base" de cette extension, vous indiquez les destinataires d'un e-mail en spécifiant leur adresse e-mail dans les champs to, cc et bcc de le document de message. Si vous disposez d'une base de données utilisateur Cloud Firestore, vous pouvez spécifier les destinataires à l'aide de la méthode UID Pour cette votre collection d'utilisateurs doit répondre aux critères suivants:

    • La collection doit être associée à des ID utilisateur. Autrement dit, l'ID de document de chaque document utilisateur de la collection doit être l'UID Firebase Authentication de l'utilisateur.
    • Chaque document d'utilisateur doit comporter un champ email contenant l'adresse e-mail de l'utilisateur adresse e-mail.
  5. Facultatif: configurez une collection de modèles.

    Vous pouvez afficher les e-mails à l'aide des modèles de Handlebars. Pour ce faire, vous aurez besoin d'une collection Cloud Firestore contenant votre modèles de ML.

    Consultez Utiliser des modèles Handlebars avec l'extension Trigger Email (Adresse e-mail du déclencheur). pour en savoir plus.

Installer l'extension

Pour installer l'extension, suivez la procédure décrite dans l'article Installer un Firebase Extension . En résumé, effectuez l'une des opérations suivantes:

Lorsque vous installez l'extension, vous êtes invité à spécifier votre serveur SMTP les informations de connexion et les collections Cloud Firestore que vous avez configurées précédemment.

Utiliser l'extension

Après l'installation, cette extension surveille toutes les écritures de document dans le que vous avez configurée. L'e-mail est distribué en fonction du contenu du les champs du document. Les champs de premier niveau indiquent l'expéditeur et destinataires. Le champ message contient les détails de l'e-mail à envoyer, y compris le corps de l'e-mail.

Exemple : Envoyer un e-mail

Pour envoyer un message simple, ajoutez un document à votre collection de messages à l'aide d'un to et un champ message avec le contenu suivant:

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

Champs Expéditeur et Destinataire

Les champs de premier niveau du document fournissent les informations sur l'expéditeur et le destinataire de l'e-mail. Les champs disponibles sont les suivants:

  • from:adresse e-mail de l'expéditeur. Si aucune valeur n'est spécifiée dans le document, utilise l'adresse FROM par défaut configurée .
  • replyTo:adresse e-mail de réponse. Si aucune valeur n'est spécifiée dans le document, utilise l'adresse de réponse par défaut configurée .
  • to:adresse e-mail d'un destinataire unique ou tableau contenant plusieurs adresses e-mail de destinataires.
  • toUids:tableau contenant les UID du destinataire.
  • cc : adresse e-mail d'un seul destinataire ou tableau contenant plusieurs adresses e-mail de destinataires.
  • ccUids:tableau contenant les UID des destinataires en copie.
  • bcc : adresse e-mail d'un seul destinataire ou tableau contenant plusieurs adresses e-mail de destinataires.
  • bccUids:tableau contenant les UID des destinataires en Cci.
  • headers : objet de champs d'en-tête supplémentaires (par exemple, {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

REMARQUE : Les options toUids, ccUids et bccUids envoient des e-mails en fonction des UID utilisateur associés aux adresses e-mail dans un document Cloud Firestore. Pour utiliser ces options de destinataire, vous devez spécifier une collection Cloud Firestore pour la collection "Utilisateurs" de l'extension . L'extension peut ensuite lire le champ email pour chaque UID spécifié dans les champs toUids, ccUids et/ou bccUids.

Champ du message

Le champ message du document contient des informations de livraison brutes pour le e-mail. Ce champ ne doit généralement être rempli que par du code de confiance exécuté dans vos propres serveurs ou Cloud Functions (consultez la section "Règles de sécurité adresse e-mail" ci-dessous).

Les propriétés disponibles pour le champ message sont les suivantes:

  • messageId:en-tête de l'ID de l'e-mail, le cas échéant.
  • subject:objet de l'e-mail.
  • text:contenu en texte brut de l'e-mail.
  • html:contenu HTML de l'e-mail.
  • amp:contenu AMP4EMAIL de l'e-mail.
  • attachments : tableau contenant une ou plusieurs pièces jointes. Options Nodemailer acceptées : chaîne UTF-8, type de contenu personnalisé, URL, chaîne encodée, URI de données et nœud MIME prégénéré (notez que votre e-mail n'a pas accès au système de fichiers du serveur cloud).

Utilisation avancée

En savoir plus sur l'utilisation avancée de cette extension: