Easy Email
Un sistema de correo electrónico HTML simple para Drupal que proporciona plantillas de correo electrónico, reemplazo de tokens, archivos adjuntos, registro de correos electrónicos y la capacidad de anular los correos electrónicos del sistema.
easy_email
Install
composer require 'drupal/easy_email:^3.0'
Overview
Easy Email es un sistema de correo electrónico HTML diseñado para ser lo más simple posible de configurar mientras proporciona un conjunto robusto de funcionalidades. A diferencia de otros módulos de correo electrónico HTML que requieren una configuración significativa y un conocimiento profundo del procesamiento MIME de correo electrónico de Drupal, Easy Email maneja todo de forma predeterminada con configuraciones sensatas.
El módulo proporciona una solución completa de gestión de correo electrónico que incluye plantillas de correo electrónico configurables con reemplazo de tokens, soporte para destinatarios To/CC/BCC, información del remitente personalizable, opciones de cuerpo en HTML y texto plano, archivos adjuntos dinámicos usando tokens o rutas de archivos, y registro completo de correos electrónicos con vinculación a cuentas de usuario. La arquitectura basada en Entity permite a los desarrolladores usar hooks del ciclo de vida estándar para modificar o extender el procesamiento de correos electrónicos.
Las plantillas de correo electrónico son fieldables, permitiendo agregar campos personalizados para casos de uso específicos (por ejemplo, agregar un campo de referencia a Entity para pedidos de Drupal Commerce para acceder a tokens derivados del pedido). El módulo incluye submódulos para anular correos electrónicos de módulos del núcleo y contrib (Easy Email Overrides) y para integración con Drupal Commerce (Easy Email Commerce).
Features
- Reemplazo de tokens para todos los campos de correo electrónico incluyendo destinatarios, remitente, asunto, cuerpo y archivos adjuntos
- Soporte para destinatarios To, CC y BCC con vinculación automática a cuentas de usuario
- Nombre del remitente, dirección y dirección de respuesta personalizables por plantilla
- Cuerpo HTML con texto de vista previa de bandeja de entrada opcional (oculto en el cuerpo pero visible en la vista previa de la bandeja de entrada del cliente de correo)
- Cuerpo de texto plano opcional que puede ingresarse manualmente o generarse automáticamente desde HTML
- Archivos adjuntos dinámicos usando tokens, rutas relativas o URIs con validación de seguridad
- Registro completo de correos electrónicos que contiene todos los correos enviados con vista previa del contenido completo
- Vinculación automática de correos electrónicos registrados a cuentas de usuario para seguimiento fácil
- Arquitectura basada en Entity que soporta hooks del ciclo de vida estándar de Drupal (hook_entity_presave, hook_entity_update, etc.)
- Plantillas de correo electrónico fieldables para agregar campos personalizados por caso de uso
- Patrón de clave única para prevenir correos electrónicos duplicados
- Purga automática de correos electrónicos basada en períodos de retención configurables
- Funcionalidad de vista previa de correo electrónico para plantillas antes del envío
- Soporte de revisiones para entities de correo electrónico con capacidades de reversión y eliminación
- Controles de seguridad de archivos adjuntos incluyendo lista blanca de rutas, bloqueo de extensiones/tipos MIME y límites de tamaño
- Integración con Drupal Symfony Mailer o Symfony Mailer Lite para entrega de correo electrónico HTML
- Comando Drush para purga manual de correos electrónicos
- Sistema de anulación para reemplazar correos electrónicos de módulos del núcleo y contrib con plantillas de Easy Email
- Integración con Drupal Commerce para plantillas de correo electrónico relacionadas con pedidos
Use Cases
Notificaciones de correo electrónico transaccional
Cree plantillas de correo electrónico para notificaciones transaccionales comunes como confirmaciones de pedidos, restablecimiento de contraseñas o actualizaciones de cuentas. Agregue campos de referencia de Entity a las plantillas para acceder a datos de Entity relacionadas a través de tokens. Configure el guardado automático para mantener un registro de auditoría completo de correos electrónicos.
Reemplazar correos electrónicos de usuario del núcleo de Drupal
Habilite el submódulo Easy Email Overrides para reemplazar los correos electrónicos del Module de usuario del núcleo con plantillas HTML personalizadas. Anule los correos electrónicos de restablecimiento de contraseña, correos de bienvenida, avisos de activación de cuenta y otras comunicaciones relacionadas con el usuario mientras mantiene las características de seguridad de Drupal.
Recibos de pedidos de Commerce
Habilite el submódulo Easy Email Commerce para crear correos electrónicos de recibo de pedidos HTML con marca. Acceda a datos de pedidos, artículos de línea, información del cliente y precios a través de tokens específicos de Commerce. Configure plantillas de correo electrónico por tienda o por tipo de pedido.
Correos electrónicos de campañas de marketing
Cree plantillas para comunicaciones de marketing con campos personalizados para seguimiento de campañas. Use la función de patrón de clave única para prevenir envíos duplicados. Aproveche el registro de correos electrónicos para rastrear entregas y vincular correos a cuentas de usuario destinatarias.
Correos electrónicos de notificación del sistema
Construya plantillas para notificaciones de administrador, alertas de moderación de contenido o correos electrónicos de estado del sistema. Use el reemplazo de tokens para contenido dinámico y configure la purga automática para gestionar el crecimiento de la base de datos.
Correos electrónicos personalizados para múltiples destinatarios
Envíe correos electrónicos personalizados a múltiples destinatarios utilizando tokens no seguros que se evalúan por destinatario. El Module maneja automáticamente la división de correos electrónicos cuando se necesita personalización por usuario mientras mantiene un único registro de correo electrónico para el registro.
Tips
- Use el patrón de clave única para prevenir el envío de correos electrónicos duplicados - combine IDs de Entity y marcas de tiempo para una deduplicación confiable
- Agregue campos de referencia de Entity personalizados a las plantillas para acceder a datos relacionados a través de tokens (por ejemplo, referencia de pedido para correos de Commerce)
- Habilite el registro de correos electrónicos selectivamente por plantilla - las plantillas de alto volumen pueden no necesitar almacenamiento permanente
- Use la funcionalidad de vista previa para probar el reemplazo de tokens antes de enviar
- Configure la seguridad de archivos adjuntos cuidadosamente - las extensiones bloqueadas por defecto protegen contra vectores de ataque comunes
- Use comandos Drush para purga masiva durante horas de baja actividad para evitar tiempos de espera de cron
- Cree sugerencias de plantilla de Theme (por ejemplo, easy-email-body-html--[bundle].html.twig) para estilos por plantilla
Technical Details
Admin Pages 12
/admin/structure/email-templates/templates
Administrar plantillas de correo electrónico. Ver, crear, editar, eliminar y previsualizar plantillas de correo. Cada plantilla define los destinatarios predeterminados, información del remitente, asunto, contenido del cuerpo, archivos adjuntos y configuración de almacenamiento para un tipo de correo electrónico.
/admin/structure/email-templates/templates/add
Crear una nueva plantilla de correo electrónico. El formulario inicial captura solo la etiqueta y el nombre de máquina. Después de guardar, se muestra el formulario completo de configuración de la plantilla.
/admin/structure/email-templates/templates/{easy_email_type}/edit
Configurar todos los aspectos de una plantilla de correo electrónico incluyendo destinatarios, remitente, contenido, archivos adjuntos y configuración de almacenamiento.
/admin/structure/email-templates/templates/{easy_email_type}
Previsualizar cómo se renderizará una plantilla de correo. Muestra encabezados, vista previa de bandeja de entrada, cuerpo HTML y cuerpo de texto plano en una interfaz de previsualización interactiva con secciones redimensionables.
/admin/structure/email-templates/settings
Configurar ajustes globales de Easy Email incluyendo purga automática, seguridad de adjuntos y visibilidad de informes.
/admin/structure/email-templates/theme
Configurar integración del tema de Easy Email. Permite habilitar un tema dedicado para el renderizado de correos.
/admin/reports/email
Ver registro de todos los correos guardados enviados desde el sitio web. Lista ID de correo, etiqueta, tipo de plantilla, destinatarios, fecha de creación, estado de envío y proporciona operaciones de ver/editar/eliminar.
/admin/reports/email/{easy_email}
Ver detalles completos de un correo enviado o no enviado incluyendo estado, hora de envío, encabezados, vista previa de bandeja de entrada, cuerpo HTML, cuerpo de texto plano y archivos adjuntos.
/admin/reports/email/add/{easy_email_type}
Crear y enviar manualmente un correo usando una plantilla. Permite personalizar todos los campos de la plantilla y opcionalmente enviar o guardar el correo.
/admin/structure/email-templates/overrides
Administrar sobrescrituras de correo que reemplazan correos del núcleo y módulos contribuidos con plantillas de Easy Email. La vista de lista muestra las sobrescrituras configuradas con operaciones de editar/eliminar.
/admin/structure/email-templates/overrides/add
Crear una nueva sobrescritura para reemplazar un correo del sistema con una plantilla de Easy Email.
/admin/structure/email-templates/overrides/{easy_email_override}/edit
Configurar mapeo de parámetros y copia de campos para una sobrescritura de correo.
Permissions 16
Hooks 1
hook_easy_email_type_delete
Reacciona a la eliminación de un tipo de plantilla de Easy Email. Utilizado por easy_email_override para limpiar las anulaciones relacionadas.
Drush Commands 1
drush easy_email:purge_emails
Purga entidades Easy Email basándose en la configuración de la plantilla o criterios especificados
Troubleshooting 6
Verifique que Drupal Symfony Mailer Lite o Drupal Symfony Mailer esté instalado y configurado. Compruebe que el sistema de correo esté correctamente configurado. Revise el registro de correos electrónicos en /admin/reports/email para ver si los correos se están creando pero no enviando.
Verifique la configuración global de archivos adjuntos en /admin/structure/email-templates/settings. Verifique que las rutas estén en la lista allowed_attachment_paths. Asegúrese de que las extensiones de archivo y los tipos MIME no estén en listas bloqueadas. Compruebe que los archivos existan en las rutas especificadas y sean legibles.
Verifique que los tokens sean correctos usando el navegador de tokens en el formulario de edición de plantilla. Asegúrese de que los campos de referencia de Entity relacionados estén poblados al crear correos electrónicos. Compruebe que el Module token esté instalado y habilitado.
Confirme que el submódulo Easy Email Overrides esté habilitado. Verifique que la anulación esté configurada en /admin/structure/email-templates/overrides. Compruebe la configuración de mapeo de parámetros. Las anulaciones individuales tienen precedencia sobre las anulaciones a nivel de Module.
Configure la purga automática en la configuración de la plantilla (Almacenamiento de correo electrónico > Eliminación automática). Habilite la purga basada en cron en la configuración global. Use el comando Drush para purga manual: drush easy_email:purge_emails
Habilite 'Generar cuerpo de texto plano desde cuerpo HTML' en la configuración de la plantilla. Asegúrese de que el campo de cuerpo HTML contenga contenido. Compruebe que la conversión html2text funcione correctamente con su Module de correo.
Security Notes 7
- Las rutas de archivos adjuntos se validan contra una lista blanca - solo los archivos que coincidan con los patrones allowed_attachment_paths pueden adjuntarse
- Las extensiones de archivo peligrosas (exe, php, js, etc.) están bloqueadas por defecto para prevenir ataques basados en correo electrónico
- La validación de tipo MIME proporciona una capa de seguridad adicional más allá de la verificación de extensiones
- Los límites de tamaño máximo de archivos adjuntos previenen ataques de agotamiento de recursos
- El acceso a Entity de correo electrónico se controla a través de permisos granulares - configure cuidadosamente para sitios multiusuario
- El patrón de clave única ayuda a prevenir inundación de correos electrónicos al rechazar envíos duplicados
- El filtrado XSS se aplica al contenido del cuerpo de texto plano antes de renderizar