Mime Mail

Un módulo de componente MIME Mail que envía correos electrónicos HTML con imágenes incrustadas y archivos adjuntos, con soporte para integración de temas y preferencias de texto plano por usuario.

mimemail
52,481 sites
55
drupal.org

Install

Drupal 11, 10 v2.0.1
composer require 'drupal/mimemail:^2.0'

Overview

Mime Mail es un módulo de correo electrónico completo que permite a Drupal enviar correos electrónicos HTML codificados en MIME con imágenes incrustadas y archivos adjuntos. Funciona tanto como un módulo de componente (API para otros módulos) como proporcionando su propia interfaz de configuración.

El módulo transforma el correo estándar de Drupal en correos electrónicos HTML enriquecidos mediante la codificación MIME del cuerpo del mensaje, incrustando automáticamente imágenes locales como adjuntos MIME e incluyendo las hojas de estilo de tu tema para una imagen de marca consistente. Cuando un destinatario prefiere texto plano (configurable por usuario mediante un campo booleano), el contenido HTML se convierte automáticamente a texto plano.

Mime Mail soporta plantillas temáticas con sugerencias basadas en el módulo remitente y la clave del correo, permitiendo a los constructores de sitios crear plantillas de correo personalizadas para tipos específicos de notificaciones. También ofrece una función opcional de CSS en línea (mediante el submódulo mimemail_compress) para garantizar la compatibilidad con clientes de correo como Gmail y Outlook 2007.

Features

  • Envía correos electrónicos HTML codificados en MIME con soporte completo para imágenes incrustadas y archivos adjuntos
  • Incluye automáticamente las hojas de estilo CSS del tema o utiliza un archivo mail.css dedicado para el estilo del correo
  • Soporta preferencia de texto plano por usuario mediante un campo booleano configurable en los perfiles de usuario
  • Proporciona plantillas de correo temáticas con sugerencias basadas en el módulo y la clave del correo (mimemail-message--[module]--[key].html.twig)
  • Convierte automáticamente las URLs de imágenes locales a referencias Content-ID para incrustación en línea
  • Soporta tanto adjuntos de archivos por ruta como contenido dinámico con detección de tipo MIME
  • Maneja el formato de direcciones de correo compatible con RFC2822 con nombres para mostrar y codificación UTF-8
  • Opción para enlazar imágenes externamente en lugar de incrustarlas para reducir el tamaño del correo
  • Nombre del remitente y dirección de correo configurables para consistencia en todo el sitio
  • Capacidad avanzada de procesamiento de mensajes entrantes para flujos de trabajo basados en correo

Use Cases

Envío de boletines HTML con marca

Usa Mime Mail con un archivo mail.css personalizado en tu tema para enviar boletines visualmente consistentes. El módulo incluye automáticamente los estilos de tu tema y puede incrustar imágenes directamente en el correo para visualización sin conexión.

Correos transaccionales con adjuntos

Envía confirmaciones de pedidos, facturas o informes con adjuntos PDF. Usa el parámetro attachments en hook_mail() para incluir archivos por ruta o contenido generado dinámicamente.

Formato de correo preferido por usuario

Crea un campo booleano en los perfiles de usuario (ej. 'Preferir correo en texto plano') y configura Mime Mail para respetar esta preferencia. Los usuarios que lo habiliten recibirán versiones en texto plano de todos los correos.

Plantillas de correo específicas por módulo

Crea plantillas de correo dirigidas como mimemail-message--commerce--order-receipt.html.twig para personalizar la apariencia de tipos específicos de correo mientras mantienes una plantilla base consistente para otros.

Prueba de configuración de correo

Habilita el submódulo Ejemplo de Mime Mail para acceder a un formulario de prueba en /admin/config/system/mimemail/mimemail_example donde puedes enviar correos de prueba con adjuntos para verificar tu configuración de correo.

Tips

  • Crea un archivo mail.css en el directorio raíz de tu tema para estilos específicos de correo que no afectarán la apariencia de tu sitio web
  • Usa el patrón de nombres mimemail-message--[module]--[key].html.twig para crear plantillas dirigidas a tipos específicos de correo
  • Cuando incrustes imágenes, usa stream wrappers como public://imagen.jpg en lugar de URLs completas para una incrustación confiable
  • Prueba los correos con el submódulo Ejemplo de Mime Mail antes de desplegar a producción
  • Considera la opción 'Solo enlazar imágenes' para boletines para reducir el tamaño del correo y mejorar la entregabilidad

Technical Details

Admin Pages 1
Configurar Mime Mail /admin/config/system/mimemail

Página de configuración global para los ajustes de Mime Mail incluyendo información del remitente, opciones de estilo y funciones avanzadas.

Permissions 2
Editar ajustes de usuario de Mime Mail

Permite a los usuarios editar sus propias preferencias de Mime Mail (como la preferencia de texto plano). Otorgado por defecto.

Enviar archivos arbitrarios

Permite adjuntar o incrustar archivos ubicados fuera del directorio de archivos públicos. Tiene implicaciones de seguridad ya que podría exponer archivos sensibles como settings.php. Otorgar solo a roles de confianza.

Hooks 2
hook_mail

Hook de correo estándar de Drupal. Cuando se usa Mime Mail, el array $params puede incluir claves adicionales para controlar el formato del correo.

hook_mail_alter

Permite a los módulos alterar el correo saliente antes de enviarlo. Se puede usar para añadir adjuntos, modificar cabeceras o cambiar el formato del mensaje.

Troubleshooting 5
Los correos se envían como texto plano en lugar de HTML

Asegúrate de que Mail System esté configurado para usar 'Mime Mail mailer' como formateador y remitente. Verifica que 'Enviar solo correo en texto plano' esté deshabilitado en los ajustes de Mime Mail.

Las imágenes no se incrustan en los correos

Usa URLs relativas o stream wrappers (public://) para las imágenes en lugar de URLs absolutas. Verifica que 'Solo enlazar imágenes' esté deshabilitado. Solo los archivos en el directorio de archivos públicos pueden incrustarse a menos que el remitente tenga el permiso 'send arbitrary files'.

Los estilos CSS no aparecen en los correos

Algunos clientes de correo (Gmail, Outlook 2007) solo soportan CSS en línea. Considera habilitar el módulo mimemail_compress para convertir CSS a estilos en línea. Verifica que tu archivo mail.css exista en el directorio del tema.

Los correos fallan en servidores Windows

Habilita 'Usar formato de dirección simple' en los ajustes de Mime Mail si no tienes una solución SMTP instalada. Los servidores Windows requieren manejo especial para direcciones con formato RFC2822.

Los enlaces de restablecimiento de contraseña se truncan en los correos

Verifica el ajuste 'Formato de correo' y asegúrate de que el formato de texto seleccionado tenga el filtro 'Convertir URLs en enlaces' habilitado con una longitud máxima de enlace suficiente.

Security Notes 4
  • El permiso 'send arbitrary files' permite acceso a cualquier archivo en el servidor incluyendo archivos sensibles como settings.php - otorgar solo a roles altamente confiables
  • El procesamiento de mensajes entrantes (ajuste avanzado) solo debe habilitarse si entiendes las implicaciones de seguridad y has configurado correctamente la validación
  • La clave de validación de mensajes para mensajes entrantes debe mantenerse secreta y cambiarse si se compromete
  • Los archivos adjuntos están restringidos al directorio de archivos públicos por defecto por seguridad - esto es intencional