Yuva Email Worker per Cloudflare
E-mail di supporto con Cloudflare.Nessun server di posta da gestire.
Cloudflare® Email Routing riceve la posta dei tuoi indirizzi di supporto, e lo Yuva Email Worker open source consegna ogni messaggio a Yuva, firmato. Arriva nella tua casella condivisa come una conversazione a cui risponde il tuo team.
Cos'è
Email Routing davanti
Cloudflare Email Routing diventa l'MX del tuo dominio e riceve la posta. Yuva non è in ascolto su SMTP, quindi non c'è alcun server di posta da installare o tenere aggiornato.
Un piccolo Worker open source
Lo Yuva Email Worker legge il messaggio grezzo e la busta, firma la richiesta e la invia a Yuva. Analisi, thread e decisioni sullo spam restano sul server.
Conversazioni vere
La posta a un indirizzo di supporto apre o continua una conversazione nella casella, e il team risponde dallo stesso pannello di chat e messaggi dell'app.
Come un messaggio arriva dal cliente al tuo team
- 1Un cliente scrive a uno dei tuoi indirizzi di supporto, per esempio support@example.com.
- 2Cloudflare Email Routing riceve il messaggio e lo passa allo Yuva Email Worker.
- 3Il Worker firma il messaggio grezzo, entrambi gli indirizzi della busta e un timestamp con HMAC-SHA256 sotto un segreto che condividi con Yuva, e li invia a /ingress/email sul tuo server Yuva.
- 4Yuva controlla la firma e che il timestamp sia entro 5 minuti prima di leggere il messaggio. Una richiesta con firma errata viene rifiutata.
- 5Yuva trova il canale e-mail per l'indirizzo del destinatario e inserisce il messaggio, tramite In-Reply-To e References, nella conversazione a cui appartiene. Qualsiasi altro caso avvia una nuova conversazione. Una risposta riapre la conversazione.
- 6Il tuo team risponde nel pannello. La risposta viene inviata tramite l'account SMTP del canale e-mail, come Amazon SES, Postmark o il tuo relay, dallo stesso indirizzo e nello stesso thread. Le risposte non passano dal Worker.
I rifiuti raggiungono il mittente
Quando Yuva rifiuta un messaggio in modo definitivo, per esempio per un indirizzo sconosciuto, un mittente bloccato o un messaggio troppo grande, il Worker lo respinge e il mittente riceve un errore SMTP permanente con il motivo di Yuva.
Se Yuva non è raggiungibile
Se Yuva risponde con un errore del server, non risponde entro 20 secondi o non è raggiungibile, il Worker può inoltrare il messaggio a un indirizzo a tua scelta, purché tu imposti FALLBACK_FORWARD. Quell'indirizzo deve essere una destinazione verificata in Email Routing. Il messaggio arriva allora come un semplice inoltro e non compare in Yuva. Senza FALLBACK_FORWARD la consegna fallisce con un errore e il server mittente può riprovare più tardi.
Configuralo in pochi passaggi
Ti servono un server Yuva e un account Cloudflare che gestisca il dominio.
- 1
In Yuva, apri Impostazioni → la tua casella → Canali → E-mail e aggiungi l'indirizzo di supporto. Imposta un segreto sul server e riavvialo:
YUVA_INGRESS_SECRET=<openssl rand -hex 32> YUVA_INGRESS_AUTHSERV_ID=mx.cloudflare.net
- 2
Distribuisci il Worker nel tuo account Cloudflare, con lo stesso segreto:
cd edge bun install bunx wrangler login bunx wrangler secret put INGRESS_SECRET bunx wrangler deploy --var YUVA_URL:https://support.example.com
- 3
Nella dashboard di Cloudflare, apri il tuo dominio → Email → Email Routing e attivalo. Cloudflare aggiunge i suoi record MX e SPF.
- 4
In Routing rules, invia ogni indirizzo di supporto al Worker yuva-edge. Per un canale catch-all, punta la regola catch-all verso di esso.
- 5
Invia un messaggio di prova e guarda la conversazione comparire nel pannello.
- 6
Facoltativo: conserva la posta durante un'interruzione aggiungendo un indirizzo di riserva al comando di distribuzione:
bunx wrangler deploy --var YUVA_URL:https://support.example.com --var FALLBACK_FORWARD:you@example.org
Email Routing diventa l'MX del dominio, quindi usa un dominio o sottodominio che nessun altro server di posta gestisce.
Leggi la guida alla configurazione →Non legato a Cloudflare
Il Worker è un modo per chiamare /ingress/email. Qualsiasi server di posta o relay può inviare il messaggio grezzo con gli stessi header firmati, e un server di posta che consegna a un comando può passare il messaggio in pipe a yuva ingest-email. Il formato della richiesta è documentato nel README del Worker.
Domande e risposte
Devo gestire un server di posta?
Non per la posta in arrivo. Yuva non è in ascolto su SMTP; Cloudflare Email Routing riceve la posta e il Worker la passa. Le risposte richiedono un account SMTP per il canale e-mail, come Amazon SES, Postmark o il tuo relay.
Cosa succede quando Yuva è fuori servizio?
Con FALLBACK_FORWARD impostato, il messaggio viene invece inoltrato a quell'indirizzo. Senza, la consegna fallisce e il server mittente può riprovare. I messaggi che Yuva rifiuta di proposito, come la posta a un indirizzo sconosciuto, vengono respinti, non inoltrati.
Quali domini e indirizzi posso usare?
Qualsiasi dominio che gestisci in Cloudflare e la cui posta non sia gestita da un altro server, perché Email Routing ne diventa l'MX. Ogni canale e-mail ha un indirizzo, oppure il catch-all *@example.com per ogni indirizzo del dominio che nessun canale possiede esattamente. Un sottoindirizzo come support+billing@example.com arriva al canale di support@example.com.
Quanto può essere grande un messaggio?
Un messaggio può arrivare a 25 MiB allegati inclusi, che è il limite di Cloudflare Email Routing. Yuva conserva fino a 50 allegati per messaggio, ciascuno entro il limite di dimensione degli allegati del server (25 MiB per impostazione predefinita) e dei tipi consentiti; il resto lo omette.
Qualcuno può falsificare posta verso il mio server Yuva?
Yuva rifiuta qualsiasi richiesta senza una firma HMAC valida o con un timestamp sfasato di oltre 5 minuti, prima di leggere il corpo. Tieni il segreto per te.
Yuva usa il risultato DMARC di Cloudflare?
Sì, quando imposti YUVA_INGRESS_AUTHSERV_ID su mx.cloudflare.net. Yuva legge allora il verdetto DMARC che Email Routing aggiunge. Una nuova conversazione che non supera DMARC viene segnata come spam.
Cloudflare, il logo Cloudflare e Cloudflare Workers sono marchi e/o marchi registrati di Cloudflare, Inc. negli Stati Uniti e in altre giurisdizioni. Yuva è un progetto open source indipendente, non affiliato né approvato da Cloudflare.