Cómo testear los emails que envía tu aplicación

¿Alguna vez te llegó un correo similar a este?

Es un hecho: los mails que genera y envía tu aplicación son una parte de ella y, como tal, deben ser testeados.

En este artículo te mostraré algunas técnicas que te ayudarán a encarar estas pruebas

Testear emails enviando a un único destinatario

Una técnica simple es hacer que todos los correos lleguen siempre a un mismo destinatario (a vos).

La ventaja de esto es que prácticamente no necesitás nada extra (Nada que no tengas digamos).

El problema es que implementar esto puede implicar ensuciar el código con condicionales aquí y allí.

Si usas un componente para el envío (Como el Mailer de Symfony), las cosas pueden ser más simples.

Basta con especificar el destinatario único en el archivo de configuración de esta forma:

# config/packages/dev/mailer.yaml
framework:
    mailer:
        envelope:
            recipients: ['youremail@example.com']

A partir de aquí, todos los correos salientes serán recibidos por un único destinatario independientemente de quién sea el «verdadero».

Testear emails usando un servidor SMTP local

Otra forma de realizar estas pruebas es instalar un servidor SMTP local y configurarlo de modo de no realizar ningún envío, si no encolarlos todos y luego consultar los envíos pendientes.

Realizar esta configuración desde cero puede resultar bastante engorroso.

Afortunadamente existen algunas herramientas que simplifican mucho todo este proceso.

Una que me parece particularmente interesante es MailHog.

Es bastante simple de instalar y cuenta con una interface web para consultar los correos que se han «enviado» a través de ella:

Otra ventaja no menor de usar MailHog es que viene pre-instalado con el paquete Homestead de Laravel (Una excelente herramienta para usar una máquina virtual para tus desarrollos)

Pero, por si no te convencí de usar MailHog aún, acá te dejo algunas alternativas:

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.