Advanced Email Validation
Valida direcciones de correo electrónico utilizando registros MX y listas de dominios de correo gratuitos, desechables o prohibidos con reglas configurables.
advanced_email_validation
Instalar
composer require 'drupal/advanced_email_validation:^2.0'
composer require 'drupal/advanced_email_validation:^1.2'
Overview
Advanced Email Validation proporciona una validación robusta de direcciones de correo electrónico más allá de la verificación básica de formato de Drupal. Aprovecha la biblioteca de código abierto stymiee/email-validator para aplicar reglas de validación configurables que pueden detectar y rechazar correos electrónicos de proveedores gratuitos (como Gmail), servicios de correo desechable (como Mailinator), dominios sin registros MX válidos o dominios prohibidos personalizados.
El módulo valida automáticamente las direcciones de correo electrónico de los usuarios durante el registro y cuando los usuarios cambian su correo. También proporciona un service para que los desarrolladores lo usen programáticamente, e incluye un handler de Webform para aplicar estas reglas de validación a campos de correo electrónico en webforms con anulaciones de configuración por formulario.
Todos los mensajes de error son personalizables y pueden traducirse usando el módulo Configuration Translation de Drupal, haciéndolo adecuado para sitios multilingües.
Features
- Valida direcciones de correo electrónico de cuentas de usuario durante el registro y cambios de correo con disparadores configurables
- Validación mediante búsqueda de registros MX para asegurar que los dominios de correo realmente existen y pueden recibir correo
- Bloquea proveedores de correo desechable/temporal (mailinator.com, etc.) usando listas obtenidas dinámicamente
- Bloquea proveedores de correo público gratuito (gmail.com, outlook.com, etc.) cuando se requieren correos corporativos
- Lista personalizada de dominios prohibidos con soporte de comodines (ej., *.example.org)
- Capacidad de agregar dominios adicionales a las listas de proveedores desechables y gratuitos o usar solo listas locales
- Mensajes de error totalmente personalizables y traducibles para cada tipo de validación
- Integración con Webform mediante un handler de validación que puede anular la configuración global por formulario
- Expone un service para que los desarrolladores validen correos programáticamente con anulaciones de configuración
Use Cases
Prevención de registros de spam
Habilita la validación de búsqueda MX para rechazar correos con dominios inexistentes. Esto bloquea muchos bots de spam que usan direcciones de correo generadas aleatoriamente con dominios falsos. Combinado con el bloqueo de correos desechables, esto reduce significativamente los registros de cuentas falsas.
Sitios corporativos/empresariales que requieren correos de trabajo
Habilita la regla de 'proveedor de correo gratuito' para rechazar registros de Gmail, Yahoo, Outlook y otros proveedores gratuitos. Esto asegura que los usuarios se registren con sus direcciones de correo corporativas/organizacionales, lo cual es útil para sitios B2B, intranets o comunidades profesionales.
Bloqueo de correos temporales/desechables
Habilita la validación de correo desechable para bloquear servicios como Mailinator, Guerrilla Mail y 10MinuteMail. Estos servicios se usan comúnmente para crear cuentas desechables, eludir la verificación de correo o abusar de ofertas de prueba.
Bloqueo de dominios personalizados
Usa la función de dominios prohibidos con soporte de comodines para bloquear competidores específicos, actores maliciosos conocidos o proveedores de correo no deseados. Por ejemplo, bloquea *.competitor.com para prevenir que empleados de la competencia se registren, o bloquea dominios específicos que han sido fuentes de abuso.
Formularios de contacto de Webform con validación de correo
Agrega el Advanced Email Webform Validator Handler a formularios de contacto o formularios de generación de leads. Configura anulaciones por formulario para aplicar diferentes reglas - por ejemplo, permitir correos gratuitos en formularios de contacto generales pero requerir correos corporativos en formularios de consultas empresariales.
Listas de dominios solo locales para cumplimiento normativo
Usa la opción 'solo lista local' para mantener control completo sobre qué dominios se bloquean. Esto es útil cuando los requisitos de cumplimiento normativo exigen que las decisiones de bloqueo se basen en una lista interna auditable en lugar de datos externos obtenidos dinámicamente.
Tips
- Combina múltiples reglas de validación para una protección más fuerte - por ejemplo, habilita tanto la búsqueda MX como el bloqueo de correos desechables
- Usa comodines en la lista de dominios prohibidos (*.example.org) para bloquear todos los subdominios de una vez
- Los mensajes de error soportan localización completa - tradúcelos usando Configuration Translation para sitios multilingües
- Prueba tu configuración con direcciones de correo desechables o gratuitas conocidas antes de ir a producción
- Para webforms, puedes tener diferentes reglas de validación por formulario habilitando 'Anular valores predeterminados del sitio' en la configuración del handler
Technical Details
Admin Pages 1
/admin/config/people/advanced-email-validation
Configura las reglas usadas para validar direcciones de correo de usuarios, personaliza mensajes de error y gestiona listas de dominios para bloquear proveedores de correo desechables, gratuitos o prohibidos personalizados.
Permisos 1
Hooks 1
hook_entity_base_field_info_alter
Usado internamente para agregar constraints AEVNewEmail y AEVChangedEmail al campo mail de la entidad User basándose en la configuración 'validate_account_on'.
Troubleshooting 4
Las búsquedas MX requieren consultas DNS que pueden agregar latencia a los envíos de formularios. Si esto es problemático, considera deshabilitar la búsqueda MX y confiar en otras reglas de validación, o asegúrate de que tu servidor tenga configurado correctamente el caché DNS.
Las listas de dominios son mantenidas por la biblioteca stymiee/email-validator y obtenidas de internet. Si necesitas permitir dominios específicos, puedes deshabilitar la regla problemática o usar la opción 'solo lista local' con tu propia lista curada.
El módulo limpia las cachés de definiciones de entidad cuando se guarda la configuración. Si la validación aún no funciona como se espera, intenta limpiar todas las cachés con 'drush cr' o a través de la página de configuración de Rendimiento.
El handler solo muestra campos de tipo 'email' o 'webform_email_confirm'. Asegúrate de que tu formulario tenga al menos un campo de correo antes de agregar el handler.
Security Notes 4
- Este módulo ayuda a prevenir abusos pero debe usarse como parte de una estrategia de defensa en profundidad, no como la única medida de prevención de spam
- La validación de búsqueda MX requiere acceso a red y potencialmente podría usarse para ataques de temporización o divulgación de información sobre infraestructura interna
- Las listas de dominios son obtenidas de fuentes externas por la biblioteca subyacente - considera usar el modo 'solo lista local' si necesitas controlar exactamente qué dominios se bloquean
- El módulo no valida que una dirección de correo realmente exista o que el usuario la controle - solo valida el dominio