Saltar al contenido
Yuva

Yuva Email Worker para Cloudflare

Correo de soporte con Cloudflare.Ningún servidor de correo que ejecutar.

Cloudflare® Email Routing recibe el correo de tus direcciones de soporte, y el Yuva Email Worker de código abierto entrega cada mensaje a Yuva, firmado. Llega a tu bandeja compartida como una conversación que responde tu equipo.

Qué es

Email Routing al frente

Cloudflare Email Routing pasa a ser el MX de tu dominio y recibe el correo. Yuva no escucha SMTP, así que no hay ningún servidor de correo que instalar ni mantener al día.

Un Worker pequeño de código abierto

El Yuva Email Worker lee el mensaje en bruto y el sobre, firma la solicitud y la envía a Yuva. El análisis, el hilado y las decisiones sobre spam se quedan en el servidor.

Conversaciones reales

El correo a una dirección de soporte abre o continúa una conversación en la bandeja, y el equipo responde desde el mismo panel que el chat y los mensajes de la app.

Cómo llega un mensaje del cliente a tu equipo

  1. 1Un cliente escribe a una de tus direcciones de soporte, por ejemplo support@example.com.
  2. 2Cloudflare Email Routing recibe el mensaje y lo pasa al Yuva Email Worker.
  3. 3El Worker firma el mensaje en bruto, las dos direcciones del sobre y una marca de tiempo con HMAC-SHA256 bajo un secreto que compartes con Yuva, y los envía a /ingress/email en tu servidor de Yuva.
  4. 4Yuva comprueba la firma y que la marca de tiempo esté dentro de 5 minutos antes de leer el mensaje. Una solicitud con una firma incorrecta se rechaza.
  5. 5Yuva encuentra el canal de correo de la dirección del destinatario y enlaza el mensaje por In-Reply-To y References en la conversación a la que pertenece. Cualquier otro caso abre una conversación nueva. Una respuesta reabre la conversación.
  6. 6Tu equipo responde en el panel. La respuesta se envía por la propia cuenta SMTP del canal de correo, como Amazon SES, Postmark o tu propio relé, desde la misma dirección y en el mismo hilo. Las respuestas no pasan por el Worker.

Los rechazos llegan al remitente

Cuando Yuva rechaza un mensaje de forma definitiva, por ejemplo una dirección desconocida, un remitente bloqueado o un mensaje demasiado grande, el Worker lo rechaza y el remitente recibe un error SMTP permanente con el motivo de Yuva.

Si no se puede alcanzar Yuva

Si Yuva responde con un error del servidor, no responde en 20 segundos o no se puede alcanzar, el Worker puede reenviar el mensaje a una dirección que elijas, siempre que definas FALLBACK_FORWARD. Esa dirección debe ser un destino verificado en Email Routing. El mensaje llega entonces como un reenvío normal y no aparece en Yuva. Sin FALLBACK_FORWARD la entrega falla con un error y el servidor remitente puede reintentarlo más tarde.

Configúralo en unos pocos pasos

Necesitas un servidor de Yuva y una cuenta de Cloudflare que gestione el dominio.

  1. 1

    En Yuva, abre Ajustes → tu bandeja → Canales → Correo y añade la dirección de soporte. Define un secreto en el servidor y reinícialo:

    YUVA_INGRESS_SECRET=<openssl rand -hex 32>
    YUVA_INGRESS_AUTHSERV_ID=mx.cloudflare.net
  2. 2

    Despliega el Worker en tu cuenta de Cloudflare, con el mismo secreto:

    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

    En el panel de Cloudflare, abre tu dominio → Email → Email Routing y actívalo. Cloudflare añade sus registros MX y SPF.

  4. 4

    En Routing rules, envía cada dirección de soporte al Worker yuva-edge. Para un canal de captura total, apunta la regla de captura total a él.

  5. 5

    Envía un mensaje de prueba y mira cómo aparece la conversación en el panel.

  6. 6

    Opcional: conserva el correo durante una caída añadiendo una dirección de respaldo al comando de despliegue:

    bunx wrangler deploy --var YUVA_URL:https://support.example.com --var FALLBACK_FORWARD:you@example.org

Email Routing pasa a ser el MX del dominio, así que usa un dominio o subdominio que ningún otro servidor de correo atienda.

Leer la guía de configuración →

No atado a Cloudflare

El Worker es una forma de llamar a /ingress/email. Cualquier servidor de correo o relé puede enviar el mensaje en bruto con las mismas cabeceras firmadas, y un servidor de correo que entrega a un comando puede canalizar el mensaje a yuva ingest-email. El formato de la solicitud está documentado en el README del Worker.

Preguntas y respuestas

¿Necesito ejecutar un servidor de correo?

No para el correo entrante. Yuva no escucha SMTP; Cloudflare Email Routing recibe el correo y el Worker lo pasa. Las respuestas necesitan una cuenta SMTP para el canal de correo, como Amazon SES, Postmark o tu propio relé.

¿Qué pasa cuando Yuva está caído?

Con FALLBACK_FORWARD definido, el mensaje se reenvía a esa dirección. Sin él la entrega falla y el servidor remitente puede reintentarlo. Los mensajes que Yuva rechaza a propósito, como el correo a una dirección desconocida, se rechazan y no se reenvían.

¿Qué dominios y direcciones puedo usar?

Cualquier dominio que gestiones en Cloudflare y cuyo correo no atienda otro servidor, porque Email Routing pasa a ser su MX. Cada canal de correo tiene una dirección, o la captura total *@example.com para todas las direcciones del dominio que ningún canal tiene exactamente. Una subdirección como support+billing@example.com llega al canal de support@example.com.

¿Qué tamaño puede tener un mensaje?

Un mensaje puede ocupar hasta 25 MiB con los adjuntos, que es el límite de Cloudflare Email Routing. Yuva conserva hasta 50 adjuntos por mensaje, cada uno dentro del límite de tamaño de adjuntos del servidor (25 MiB por defecto) y de los tipos permitidos; el resto lo omite.

¿Puede alguien falsificar correo hacia mi servidor de Yuva?

Yuva rechaza cualquier solicitud sin una firma HMAC válida o con una marca de tiempo desfasada más de 5 minutos, antes de leer el cuerpo. Guarda el secreto para ti.

¿Usa Yuva el resultado DMARC de Cloudflare?

Sí, cuando defines YUVA_INGRESS_AUTHSERV_ID como mx.cloudflare.net. Yuva lee entonces el veredicto DMARC que añade Email Routing. Una conversación nueva que falla DMARC se marca como spam.

Cloudflare, el logotipo de Cloudflare y Cloudflare Workers son marcas comerciales y/o marcas registradas de Cloudflare, Inc. en Estados Unidos y otras jurisdicciones. Yuva es un proyecto independiente de código abierto, sin afiliación ni respaldo de Cloudflare.