Utilizzo dell'estensione Trigger Email

L'estensione Invia email (firestore-send-email) ti consente di inviare automaticamente email in base ai documenti di una raccolta Cloud Firestore. Aggiunta di un documento a la raccolta attiva l'estensione per inviare un'email creata campi del documento. I campi di primo livello del documento specificano il mittente dell'email e destinatari, incluse le opzioni to, cc e bcc (ognuna di supporto UID). Il campo message del documento specifica gli altri elementi dell'email, come la riga dell'oggetto e il corpo dell'email (in testo normale o HTML).

Ecco un esempio di base di scrittura di un documento che attiva l'estensione:

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

Se vuoi, puoi anche configurare questa estensione per eseguire il rendering delle email utilizzando i modelli Handlebars.

Configurazione di preinstallazione

Prima di installare l'estensione, completa questi passaggi:

  1. Configura il servizio di posta in uscita.

    Quando installi l'estensione Trigger Email, devi specificare i dettagli di connessione e autenticazione di un server SMTP, che l'estensione per inviare email. In genere viene fornito da un servizio di invio email come Sendgrid, Mailgun o Mailchimp Transactional Email, ma potrebbe anche essere un server che gestisci autonomamente.

  2. Crea una raccolta di documenti email.

    L'estensione email Trigger rimane in ascolto dei nuovi documenti in un Cloud Firestore raccolta specificata da te. Quando trova un nuovo documento, l'estensione invia un'email in base ai campi del documento. A questo scopo puoi utilizzare qualsiasi raccolta Cloud Firestore. Gli esempi in questa pagina utilizzano una raccolta denominata email.

  3. Configura le regole di sicurezza per la raccolta di documenti email.

    Questa estensione può essere utilizzata per attivare la consegna delle email direttamente dal client diverse applicazioni. Tuttavia, devi controllare con attenzione l'accesso dei clienti ai per evitare potenziali abusi (non vuoi che gli utenti inviino email arbitrarie dall'indirizzo della tua azienda).

    Le regole di sicurezza variano da un'applicazione all'altra, ma devi sempre assicurarti che le email vengano inviate solo ai destinatari previsti e che i contenuti in formato libero siano ridotti al minimo. I modelli possono essere utili in questo caso: puoi utilizzare le regole di sicurezza per verificare che i dati inseriti nel modello corrispondano alle tue aspettative su ciò che un utente deve poter attivare.

  4. (Facoltativo) Configura una raccolta di utenti.

    Nell'utilizzo di base di questa estensione, specifichi i destinatari di un'email indicando i relativi indirizzi email nei campi to, cc e bcc del documento del messaggio. In alternativa, se hai un database utente in Cloud Firestore, puoi specificare i destinatari utilizzando gli UID degli utenti. Affinché questo funzioni, la raccolta degli utenti deve soddisfare i seguenti criteri:

    • La raccolta deve essere basata sugli ID utente. ovvero l'ID documento di ogni il documento utente nella raccolta deve essere l'UID Firebase Authentication dell'utente.
    • Ogni documento utente deve avere un campo email contenente l'indirizzo email dell'utente.
  5. (Facoltativo) Configura una raccolta di modelli.

    Puoi visualizzare le email utilizzando i modelli Handlebars. Per farlo, dovrai avere una raccolta Cloud Firestore che contenga i tuoi modelli di machine learning.

    Per maggiori dettagli, consulta la sezione Utilizzare i modelli Handlebars con l'estensione Trigger Email.

Installa l'estensione

Per installare l'estensione, segui i passaggi descritti nella pagina Installa un Firebase Extension. In sintesi, esegui una delle seguenti operazioni:

  • Console Firebase: fai clic sul seguente pulsante:

    Installare l'estensione email trigger

  • Interfaccia a riga di comando: esegui questo comando:

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

Quando installi l'estensione, ti verrà chiesto di specificare il protocollo SMTP informazioni sulla connessione e le raccolte Cloud Firestore che hai configurato in precedenza.

Utilizzare l'estensione

Dopo l'installazione, questa estensione monitora tutte le scritture di documenti che hai configurato. L'email viene recapitata in base ai contenuti campi del documento. I campi di primo livello specificano il mittente e destinatari. Il campo message contiene i dettagli dell'email da recapitare, incluso il corpo dell'email.

Esempio: inviare un'email

Per inviare un messaggio semplice, aggiungi un documento alla tua raccolta di messaggi con un to e un campo message con i seguenti contenuti:

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

Campi mittente e destinatario

I campi di primo livello del documento indicano il mittente e il destinatario dell'email. informazioni. I campi disponibili sono:

  • from: l'indirizzo email del mittente. Se non specificato nel documento, viene utilizzato il parametro "Indirizzo FROM predefinito" configurato.
  • replyTo: l'indirizzo email per le risposte. Se non specificato nel documento, utilizza l'"indirizzo REPLY-TO predefinito" configurato .
  • to: un singolo indirizzo email del destinatario o un array contenente più indirizzi email del destinatario.
  • toUids: un array contenente gli UID dei destinatari.
  • cc: un singolo indirizzo email del destinatario o un array contenente più indirizzi email del destinatario.
  • ccUids: un array contenente gli UID dei destinatari in Cc.
  • bcc: un singolo indirizzo email del destinatario o un array contenente più indirizzi email del destinatario.
  • bccUids: un array contenente gli UID dei destinatari in Ccn.
  • headers: un oggetto di campi di intestazione aggiuntivi (ad esempio {"X-Custom-Header": "value", "X-Second-Custom-Header": "value"}).

NOTA:le opzioni toUids, ccUids e bccUids recapitano le email in base a UID utente associati a indirizzi email all'interno di un documento Cloud Firestore. Per utilizzare devi specificare una raccolta Cloud Firestore alla "raccolta Utenti" dell'estensione . L'estensione può quindi leggere il email campo per ogni UID specificato nei campi toUids, ccUids e/o bccUids.

Campo messaggio

Il campo message del documento contiene informazioni di consegna non elaborate per il email. In genere, questo campo deve essere compilato solo da codice attendibile in esecuzione sui tuoi server o in Cloud Functions (fai riferimento alla sezione "Regole di sicurezza e invio di email" di seguito).

Le proprietà disponibili per il campo message sono:

  • messageId: un'intestazione ID messaggio per l'email, se presente.
  • subject: l'oggetto dell'email.
  • text: il testo non elaborato dell'email.
  • html: i contenuti HTML dell'email.
  • amp: i contenuti AMP4EMAIL dell'email.
  • attachments: un array contenente allegati; Opzioni Nodemailer supportate: stringa utf-8, tipo di contenuti personalizzato, URL, stringa codificata, URI dati e nodo MIME pregenerato (tieni presente che la tua email non ha accesso al file system del server cloud).

Utilizzo avanzato

Scopri di più sull'utilizzo avanzato di questa estensione: