Email Confirmer

Un servicio integral de confirmación de direcciones de correo electrónico para Drupal que proporciona una API, una entidad de contenido y utilidades para verificar direcciones de correo electrónico mediante enlaces de confirmación.

email_confirmer
658 sites
23
drupal.org

Instalar

Drupal 11, 10, 9 v8.x-1.0
composer require 'drupal/email_confirmer:8.x-1.0'

Overview

Email Confirmer es una suite completa para la confirmación de direcciones de correo electrónico en Drupal. Proporciona una API centralizada y un servicio que otros módulos pueden usar para confirmar direcciones de correo electrónico, junto con un tipo de entidad de contenido para almacenar y gestionar los procesos de confirmación.

El módulo envía solicitudes de confirmación que contienen enlaces únicos a las direcciones de correo electrónico. Los destinatarios pueden confirmar o cancelar la confirmación haciendo clic en estos enlaces, lo que les lleva a un formulario de respuesta. Cada confirmación almacena información detallada, incluyendo la dirección de correo electrónico, el usuario que la inició, la dirección IP, la marca de tiempo de creación, propiedades personalizadas, realm (ámbito/módulo), indicadores de estado (pendiente, cancelada, confirmada, enviada) y URLs de redirección para diferentes resultados.

Una ventaja clave de Email Confirmer es mantener una base de datos de direcciones de correo electrónico confirmadas, de modo que los usuarios no necesitan volver a confirmar la misma dirección repetidamente para diferentes propósitos como suscripciones a boletines o actualizaciones de perfil. El módulo purga automáticamente los registros de confirmación antiguos mediante cron, con configuraciones de tiempo de vida ajustables.

El submódulo Email Confirmer User incluido extiende la funcionalidad a eventos relacionados con usuarios, como requerir confirmación cuando los usuarios cambian sus direcciones de correo electrónico y sincronizar el estado de verificación de correo electrónico del núcleo de Drupal con la base de datos de confirmaciones.

Features

  • API y servicio de confirmación de correo electrónico centralizado con el que otros módulos pueden integrarse
  • Tipo de entidad de contenido personalizado (email_confirmer_confirmation) para almacenar y gestionar procesos de confirmación
  • Plantillas de correo electrónico de confirmación configurables con soporte de Token para personalización
  • Formulario de respuesta que permite a los usuarios confirmar o cancelar confirmaciones de correo electrónico con mensajes personalizables
  • Modo de confirmación directa opcional que omite el formulario de respuesta para una verificación más ágil
  • Opción de restricción de acceso basada en IP para aceptar solo respuestas desde la dirección IP de origen
  • Soporte de confirmación privada que limita las respuestas solo al usuario que la inició
  • Purga automática de registros de confirmación antiguos mediante cron con tiempo de vida configurable (1 semana a 1 año, o permanente)
  • Despachador de solicitudes retrasadas basado en cola para limitar la tasa de reenvío de correos de confirmación
  • Sistema de realm que permite a los módulos organizar sus confirmaciones en espacios de nombres para filtrado y organización
  • Almacenamiento de propiedades arbitrarias en entidades de confirmación para datos específicos del módulo
  • URLs de redirección configurables después de confirmación, cancelación o error para diferentes contextos de confirmación
  • Submódulo User: Confirmación de cambio de correo electrónico que requiere que los usuarios verifiquen nuevas direcciones antes de aplicar los cambios
  • Submódulo User: Notificación a la dirección de correo electrónico actual cuando se solicita un cambio de correo
  • Submódulo User: Registro automático de confirmación en el primer inicio de sesión del usuario y uso de enlaces de inicio de sesión de un solo uso
  • Integración con el módulo Ultimate Cron para trabajos de purga programados

Use Cases

Confirmación de suscripción a boletín

Use el servicio email_confirmer para verificar solicitudes de suscripción a boletines. Cuando un usuario se suscribe a un boletín, llame a $email_confirmer->confirm($email, ['subscription_type' => 'newsletter'], 'mymodule_newsletter') para iniciar la confirmación. Implemente hook_email_confirmer() para procesar las suscripciones confirmadas y agregar usuarios a la lista de correo.

Verificación de cambio de dirección de correo electrónico de usuario

Habilite el submódulo Email Confirmer User para requerir que los usuarios confirmen nuevas direcciones de correo electrónico antes de que el cambio surta efecto. El correo electrónico original permanece activo hasta la confirmación, previniendo el secuestro no autorizado de correo electrónico y asegurando que los usuarios mantengan acceso a sus cuentas.

Verificación de formulario de contacto

Verifique los envíos del formulario de contacto requiriendo confirmación de correo electrónico antes de procesar los mensajes. Cree una confirmación con propiedades personalizadas almacenando los datos del formulario, luego procese el mensaje en hook_email_confirmer() cuando sea confirmado.

Doble opt-in en registro de cuenta

Implemente el registro con doble opt-in usando email confirmer junto con el registro de usuarios del núcleo. El submódulo de usuario registra automáticamente las confirmaciones cuando los usuarios completan el registro, construyendo una base de datos de correos electrónicos verificados.

Verificación de correo electrónico basada en API para Drupal headless

Use el servicio email_confirmer en endpoints REST personalizados para proporcionar verificación de correo electrónico para frontends desacoplados. Cree confirmaciones programáticamente, personalice las URLs de respuesta para apuntar a rutas del frontend, y consulte el estado de confirmación a través de la API.

Tips

  • Use el parámetro 'realm' al llamar al método confirm() para organizar las confirmaciones de su módulo en un espacio de nombres. Esto permite filtrar confirmaciones por origen y previene conflictos entre diferentes casos de uso.
  • Almacene datos personalizados con las confirmaciones usando setProperty() en la entidad de confirmación. Estos datos persisten y están disponibles en hook_email_confirmer() al procesar respuestas.
  • Establezca URLs de redirección personalizadas por confirmación usando setResponseUrl() para dirigir a los usuarios a páginas apropiadas al contexto después de confirmar, cancelar o encontrar errores.
  • Marque las confirmaciones como privadas usando setPrivate() cuando solo deban ser respondibles por el usuario que las inició, previniendo que otros usuarios autenticados secuestren la confirmación.
  • La opción 'Considerar confirmaciones existentes' en el submódulo de usuario reduce la fricción al no volver a pedir a los usuarios que confirmen direcciones de correo electrónico previamente verificadas.
  • El reemplazo de Token en plantillas de correo electrónico soporta [email-confirmer:confirmation-mail], [email-confirmer:confirmation-url], [site:name], [site:url], y otros tokens estándar de Drupal.

Technical Details

Admin Pages 2
Configuración de confirmación de correo electrónico /admin/config/system/email-confirmer

Configure los ajustes principales del servicio de confirmación de correo electrónico, incluyendo la expiración de confirmaciones, plantillas de correo electrónico, comportamiento del formulario de respuesta y URLs de redirección.

Configuración de confirmación de correo electrónico de usuario /admin/config/system/email-confirmer/user

Configure los comportamientos de confirmación de correo electrónico relacionados con usuarios, incluyendo la confirmación de cambio de correo electrónico y el registro de confirmación basado en inicio de sesión.

Permisos 3
Administrar confirmaciones de correo electrónico

Actualizar o eliminar cualquier proceso de confirmación de correo electrónico sin ninguna restricción. Este es un permiso de nivel de administrador necesario para gestionar configuraciones y administrar todas las confirmaciones.

Acceder a confirmación de correo electrónico

Usar el servicio de confirmación de correo electrónico. Requerido para que los usuarios confirmen, cancelen o reenvíen confirmaciones de correo electrónico. Deshabilitado por defecto.

Omitir confirmación de cambio de correo electrónico de usuario

Actualizar direcciones de correo electrónico de usuarios sin requerir confirmación de la nueva dirección. Proporcionado por el submódulo Email Confirmer User.

Hooks 1
hook_email_confirmer

Actúa sobre respuestas de confirmación de correo electrónico. Permite que los módulos reaccionen cuando una confirmación es confirmada o cancelada.

Troubleshooting 6
Los usuarios no pueden confirmar, cancelar o reenviar confirmaciones de correo electrónico

Asegúrese de que el permiso 'access email confirmation' esté otorgado a los roles de usuario apropiados. Este permiso está deshabilitado por defecto.

Los enlaces de confirmación expiran demasiado rápido

Aumente la configuración de 'Tiempo límite de respuesta' en /admin/config/system/email-confirmer. El valor predeterminado es 24 horas, pero puede extenderse hasta 48 horas.

No se puede desinstalar el módulo

Las entidades de confirmación de correo electrónico deben eliminarse antes de desinstalar. Use el módulo contrib 'Delete all' (https://www.drupal.org/project/delete_all) para eliminar masivamente todas las entidades email_confirmer_confirmation.

Los correos electrónicos de confirmación se están enviando con demasiada frecuencia

Aumente la configuración de 'Retraso antes de reenviar solicitud' para imponer una espera más larga entre intentos de reenvío. Las solicitudes realizadas antes de que expire el retraso se ponen en cola para entrega posterior.

La confirmación de cambio de correo electrónico de usuario no funciona

Verifique que el submódulo Email Confirmer User esté habilitado y que 'Requerir confirmación' esté marcado en /admin/config/system/email-confirmer/user. También asegúrese de que los usuarios tengan el permiso 'access email confirmation'.

Las confirmaciones desde diferentes direcciones IP están bloqueadas

Deshabilite la configuración 'Aceptar respuestas de confirmación de correo electrónico solo desde la misma dirección IP' si los usuarios necesitan confirmar desde diferentes dispositivos o redes.

Security Notes 6
  • El permiso 'administer email confirmations' está marcado como 'restrict access' debido a su naturaleza sensible. Otórguelo solo a roles de administrador de confianza.
  • Habilite la restricción de IP para confirmaciones en escenarios de alta seguridad, aunque tenga en cuenta que esto puede causar problemas para usuarios que acceden desde redes móviles o VPNs.
  • El módulo usa hashes basados en HMAC generados a partir de correo electrónico, marca de tiempo e IP usando la clave privada de Drupal para URLs de confirmación seguras.
  • Las confirmaciones privadas agregan una capa extra de seguridad al asegurar que solo el propietario de la cuenta pueda responder a ciertas confirmaciones.
  • La notificación del submódulo de usuario a las direcciones de correo electrónico actuales ayuda a detectar intentos no autorizados de cambio de correo electrónico.
  • Considere las implicaciones de seguridad del modo 'Omitir formulario de respuesta' - aunque es conveniente, puede causar confirmaciones falsas si el software de seguridad de correo electrónico previsualiza los enlaces.