Vai al contenuto
Yuva

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

  1. 1Un cliente scrive a uno dei tuoi indirizzi di supporto, per esempio support@example.com.
  2. 2Cloudflare Email Routing riceve il messaggio e lo passa allo Yuva Email Worker.
  3. 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.
  4. 4Yuva controlla la firma e che il timestamp sia entro 5 minuti prima di leggere il messaggio. Una richiesta con firma errata viene rifiutata.
  5. 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.
  6. 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. 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. 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. 3

    Nella dashboard di Cloudflare, apri il tuo dominio → Email → Email Routing e attivalo. Cloudflare aggiunge i suoi record MX e SPF.

  4. 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. 5

    Invia un messaggio di prova e guarda la conversazione comparire nel pannello.

  6. 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.