Resumen. El filtro de spam de fábrica de Mailcow no detecta el spam moderno generado por IA y marca en exceso el correo transaccional legítimo. Añadir un clasificador LLM encima —con tu propio modelo para una soberanía total de los datos— soluciona ambos problemas en menos de una hora.
Lecturas relacionadas: Cómo clasifica el correo la IA en la práctica · Por qué fallan las reglas SI-ENTONCES
Si estás aquí porque el filtro de spam de Mailcow no funciona (o porque el spam obvio sigue llegando a tu bandeja de entrada), esto es para ti.
Primero, una lista rápida de comprobación para diagnosticar una instalación existente de Mailcow/Rspamd (para que sepas por qué pasó el mensaje). Después, te mostraré la solución que acabé implementando: una segunda capa que atrapa este tipo de basura de forma fiable.
Lista rápida: por qué Mailcow deja pasar el spam (5 minutos)

-
Abre el mensaje en Mailcow y revisa Rspamd
- Mira la puntuación total y los symbols que se activaron.
- Comprueba si se quedó justo por debajo de tus umbrales de Junk/Reject.
-
Revisa SPF/DKIM/DMARC
- Si SPF o DKIM pasan y DMARC no es estricto, mucho spam parece “suficientemente válido” para colarse.
-
No sobrestimes el aprendizaje Bayes
- El entrenamiento ayuda, pero necesita volumen y tiempo. En bandejas pequeñas puede resultar lento.
-
Los umbrales pueden ser demasiado conservadores
- Muchas configuraciones prefieren evitar falsos positivos, así que el spam se trata con guante blanco a menos que ajustes la puntuación.
-
Parte del spam es sobre todo patrones
- Trucos en el nombre mostrado, discrepancia en Reply-To, rarezas unicode: cosas que a los humanos les resultan obvias pero que no siempre puntúan alto.
Si solo vas a hacer una cosa: lee los symbols de Rspamd del spam que llegó a la Bandeja de entrada. Eso suele resolver el misterio al instante. Pero aunque aclara por qué el correo no se clasificó como spam, no soluciona el problema por arte de magia, y la configuración de MailCow debe ajustarse a tus necesidades. Como no fui capaz de hacerlo ni siquiera tras probar varias cosas, ahora te explico cómo acabé arreglando el problema.
Mi forma desesperada y poco convencional de arreglar el débil filtro de spam
Las bromas suelen ser a costa de otros, pero en una conversación decente intentamos no cruzar la línea de lo gracioso a lo insultante. Definir qué es “pasarse” es subjetivo. Aun así, hay un patrón claro: cuanto más seguro se siente alguien en un ámbito determinado, menos probable es que se sienta insultado, y más fácil le resulta reírse de la broma tonta de quien le pincha.
Esta dinámica se ve por todas partes. Piensa en el triatleta que se gasta una fortuna en un sillín de carbono que se siente como una piedra, el desarrollador que pasa semanas configurando Neovim en lugar de simplemente abrir VS Code, o yo mismo, sin soporte de webcam en mi portátil porque el driver aún no se ha integrado en upstream. Para alguien de fuera, parece un sufrimiento innecesario, pero para quien lo vive, la lucha forma parte de la diversión.
Sin embargo, solemos calcular mal qué es lo que realmente nos afecta. Normalmente no son las luchas que elegimos nosotros mismos las que nos ponen a la defensiva, sino aquello ante lo que nos sentimos impotentes para cambiar.
La frustración con el filtro por defecto de Mailcow
Mi verdadera fuente de frustración es nuestra instancia gestionada de Mailcow. Como administrador, me lo tomo como algo personal cuando el sistema falla en bloquear incluso la basura más trivial. Duele, sobre todo cuando le siguen comentarios como: “Mi Gmail personal nunca tiene estos problemas, pero qué bien que tengamos que usar esta solución ‘Open Source’”.
Aunque esos comentarios sean pullas amistosas de compañeros con conocimientos técnicos, aun así me irrita hasta cierto punto. Pese a haber instruido estrictamente al equipo para que entrene el filtro de spam moviendo mensajes a Junk o reenviándolos a spam@… (lo que activa el proceso de aprendizaje de Rspamd), el sistema simplemente no se adapta con suficiente rapidez.
No soy ningún experto en hosting de correo —para eso precisamente pagamos un servicio gestionado—, pero me cuesta creer que los filtros por defecto sean tan malos detectando patrones obvios.
Este es el último ejemplo, de “💬Rebeca💌”, que llegó a la bandeja de entrada el 20 de diciembre de 2025:

Por qué las reglas de spam estándar pasan por alto lo obvio
Como aclaración: no tengo un conocimiento profundo de cómo funcionan los protocolos de correo por dentro. Precisamente por eso pagamos una instancia de Mailcow gestionada; doy por hecho que debería haber una configuración por defecto aceptable que cubra lo básico.
Pero al mirar las cabeceras en la captura de abajo, resulta frustrante ver que las reglas de filtrado estándar a veces pasan por alto lo que claramente es basura. Esto ni siquiera es la prospección en frío barata generada por LLM que cada vez es más difícil de detectar; esto es simplemente basura anticuada y obvia.
En mi cabeza, no dejaba de pensar que hasta el modelo de IA más “tonto” se daría cuenta al instante de que esto es spam. Lo que realmente quería era un servicio que me permitiera ejecutar un prompt de LLM personalizado sobre cada correo entrante para categorizarlo exactamente como yo quisiera, ya fuera Spam, Marketing o temas de trabajo específicos.
Sí, enrutar el correo a través de un LLM puede parecer un enfoque desproporcionado para resolver un problema de spam, pero no tengo la experiencia para toquetear las tripas del servidor de correo ni el tiempo para ir y venir con soporte técnico. Además, podemos usar este enfoque para filtrar correos según proyectos o urgencia específicos, algo que también se está volviendo necesario.
Sin embargo, no podía simplemente apuntar a todo el mundo a una herramienta de organización de correo ya existente. Toda la razón de ser de nuestro self-hosting es la soberanía de los datos. Si empezáramos a enviar cada correo de la empresa a una startup externa para que lo recolectara, podríamos usar directamente Gmail for Business. Ese es exactamente el hueco que cubre la clasificación de email con IA para servidores autoalojados — la capa del LLM se ejecuta sobre tu propio stack de Mailcow/Rspamd en lugar de enrutar tu buzón a través del SaaS de otro.
La solución: un filtro de spam impulsado por LLM
Así que, durante las vacaciones de Navidad, por fin me senté a construir una solución. Monté una herramienta que se conecta a nuestras cuentas y usa un LLM para clasificar el correo según un prompt sencillo; nada demasiado complicado, pero funcionó.
Dediqué algo de tiempo a pulir la interfaz para mis compañeros, diseñándola específicamente para que pudieran conectar sus propios endpoints de LLM. Esta fue la clave: obtenemos la inteligencia de la IA, pero como conectamos nuestras propias claves de API (o endpoints locales), no tenemos que preocuparnos de que un tercero almacene nuestros datos.
Una vez terminada la interfaz y configurado el hosting para el equipo, pensé que igual valía la pena abrirlo al público. Ya soy cofundador de una empresa, y una vez que te metes en esa mentalidad, se te olvida cómo construir algo útil sin ponerle un proceso de pago. A estas alturas, es simplemente costumbre.
Lo llamé email-filter.ai, en parte para acallar de una vez esas bromas sobre mi bandeja de entrada, pero sobre todo porque se convirtió en una herramienta realmente sólida.
Try AI Email Filtering
Define your own rules with natural language. Works with any email provider.
Connected Accounts
3 mailboxesYour Filters
3 activePersonal
From people I know personally or have emailed before
Spam & Sales
DeleteCold outreach, LinkedIn spam, or someone trying to sell me something
Favorite Shop Newsletter
StarDeals and updates from the shops I actually buy from
AI Classification
Waiting for emails...
on your LLM or ours