Bug template rspamd_settings.conf — Whitelist per-user ineficaz El problema Las whitelists de SpamAssassin que los usuarios configuran desde el panel de DirectAdmin (E-Mail → SpamAssassin Setup → Whitelist) no funcionan con rspamd. Los remitentes whitelisteados siguen llegando a la carpeta spam. Afecta a todas las versiones de DirectAdmin con spamd=rspamd (verificado hasta DA 1.696). Causa raíz (doble) El template /usr/local/directadmin/data/templates/rspamd_settings.conf genera bloques _whitelist en /etc/rspamd/users.d/*.conf con dos defectos: 1. Priority incorrecta El bloque _whitelist tiene priority = 4 hardcoded, pero el bloque _prefs usa priority = medium (= 5 en rspamd). rspamd selecciona el bloque de mayor prioridad → _prefs SIEMPRE gana, la whitelist NUNCA se aplica. 2. Falta apply.actions Incluso si la prioridad fuera correcta, el bloque whitelist solo tiene want_spam = yes sin un bloque apply { actions { ... } } . rspamd sigue añadiendo cabecera X-Spam-Status: Yes y el filtro de dominio de Exim sigue enviando a la carpeta spam. Contraste con blacklist Los bloques _blacklist del mismo template sí funcionan porque: Usan priority = high (= 10) Incluyen apply { actions { ... } } Cómo verificar # Ver qué settings block aplica rspamd para un usuario grep "settings.lua" /var/log/rspamd/rspamd.log | grep USUARIO # Siempre mostrará "settings_id: USUARIO_prefs" — nunca "USUARIO_whitelist" Solución: template custom Paso 1: Crear copia custom del template mkdir -p /usr/local/directadmin/data/templates/custom/ cp /usr/local/directadmin/data/templates/rspamd_settings.conf \ /usr/local/directadmin/data/templates/custom/rspamd_settings.conf Paso 2: Editar la copia custom En /usr/local/directadmin/data/templates/custom/rspamd_settings.conf , buscar los bloques que contienen whitelist y cambiar: Antes (roto): |*if whitelist_count>"0"| |WHITELIST_ID| { priority = 4; |CUSTOM12| |RCPT| |whitelist_from_list| want_spam = yes; |CUSTOM13| } Después (corregido): |*if whitelist_count>"0"| |WHITELIST_ID| { priority = 6; |CUSTOM12| |RCPT| |whitelist_from_list| want_spam = yes; apply { actions { "add header" = 9999; "rewrite subject" = null; } } |CUSTOM13| } Hay dos bloques whitelist en el template (uno con |whitelist_from_list| y otro con listas adicionales). Aplicar el cambio a ambos. Paso 3: Regenerar users.d para usuarios existentes El template custom se aplica cuando: Un usuario cambia sus preferencias de spam en el panel Se ejecuta un rebuild que afecta a users.d Para forzar la regeneración de un usuario específico, el usuario debe ir a E-Mail → SpamAssassin Setup y guardar (aunque no cambie nada). Para usuarios que ya tenían whitelist activa , hay que parchear manualmente su fichero users.d/*.conf : # Ejemplo para usuario "alufasa" en kvm456 # En /etc/rspamd/users.d/alufasa.conf, buscar el bloque _whitelist y cambiar: # priority = 4 → priority = 6 # Añadir apply.actions tras want_spam = yes Cadena de prioridades correcta blacklist (high=10) > whitelist (6) > prefs (medium=5) > default Persistencia El template custom en data/templates/custom/ sobrevive updates de DirectAdmin. Es el mecanismo oficial de override. Referencia: post en el foro DA Este bug fue reportado en el foro oficial de DirectAdmin: Bug: rspamd_settings.conf template — per-user whitelist never applied (priority 4 < prefs medium) El bug original de blacklist (mismo template) fue reportado en 2019 y corregido. La whitelist nunca recibió el mismo fix. Alternativa: whitelist dinámica via email Independientemente de este bug, existe un sistema de whitelist dinámica gestionado via email que SÍ funciona correctamente — usa multimap con score -100 en vez del mecanismo de settings per-user. Ver la página "Whitelist dinámica de rspamd via email en DirectAdmin" en esta misma wiki. Servidores con template custom desplegado Servidor Fecha Usuarios parcheados manualmente kvm456 2026-03-19 alufasa, amenocalbus, audionica, elayudante, gestemalisal, lopeza, regfiltersl srv120 2026-03-19 tmar srv121 2026-03-19 neolystic dar 2026-03-19 (ninguno con whitelist activa) Nota sobre want_spam = yes want_spam = yes en rspamd settings NO es una whitelist por sí solo. Solo indica que el bloque de settings se aplica también a mensajes clasificados como spam. Sin apply.actions , rspamd sigue marcando el correo como spam. Es una trampa sutil de la documentación de rspamd.