Como evitar envío de emails en Drupal 8

Imagen
La pantalla de un movil mostrando emails

Normalmente cuando desarrollamos una web hacemos envíos de emails para testear y probar. Esto es normal y no suele dar problemas, pero si estamos trabajando en una web, la cual hemos copiado de producción y tiene, por ejemplo, una newsletter, podemos tener un problema serio si se realiza un envío de prueba a todos los clientes suscritos.

Evitar que se envíen emails

Es muy sencillo evitar que Drupal 8 envie correo, únicamente tenemos que añadir una opción a nuestro archivo settings.local.php (o settings.php si no separamos la configuración local).

La línea en concreto es esta:

$config['system.mail']['interface']['default'] = 'test_mail_collector';

Añadiendo esa línea, ya evitaremos que se envíen correos. Lo que estamos haciendo, es cambiar el sistema de emails a “test_mail_collector” para que no se realice ningún envío.

Si utilizamos Drush, podemos comprobar que correos se han enviado ejecutando:

drush sget system.test_mail_collector

Con eso, podremos ver los correos que no se han enviado al modificar el sistema de envíos.

Almacenar los emails en archivos temporales:

Para esto, necesitamos el módulo Devel. Devel añade un sistema de emails, que desvía todos los correos a archivos, a si podemos ver los resultados si estamos haciendo debug.

Al igual que antes, tenemos que modificar el sistema de envíos de email, sustituyéndolo por el que Devel nos provee.

$config['system.mail']['interface']['default'] = 'devel_mail_log';

Esto nos almacenara el contenido de los emails en un archivo llamado "devel-emails" en la carpeta temporal. Opcionalmente, podemos escoger en que directorio se creara ese archivo, para ello, tenemos que añadir otra línea:

$config['devel.settings']['debug_mail_directory'] = 'temporary://nireneko';

Ahora, el archivo se creara dentro de la carpeta “nireneko” dentro de la carpeta de archivos temporales.

Poco mas, solo recordar que esto no se debe hacer en produccion, y tiene ir en el archivo settings.local.php, ya que son opciones de desarrollo. Si lo añadimos en settings.php, tenemos que borrarlo antes de subir el código a producción (si subimos el archivo settings.php, que tampoco se debería hacer).

 

Artículos relacionados: