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:
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.
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
.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.
(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
ebcc
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.
(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:
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:
- Utilizzare i modelli Handlebars con l'estensione Email trigger
- Gestire lo stato di invio con l'estensione Email trigger