DEV Community

Roberto Manchado
Roberto Manchado

Posted on • Edited on

3

MailCatcher

En ocasiones, debemos realizar pruebas de nuestros métodos o proyectos
en las que de alguna manera deberemos enviar un email.

Ya sea en un entorno de pruebas o de desarrollo, y en anteriores experiencias
el protocolo ha sido, crear un email ficticio y enviartelo a tu bandeja de entrada , ya
sea de email, protonmail, yahoo?,,,, etc.

Muy profesional.

Desde hace bien poco, vengo utilizando una herramienta , Mail Catcher, que
precisamente sirve para esto.
Se trata de un servidor SMTP que intercepta los mensajes de salida que enviemos al puerto
por defecto: http://127.0.0.1:1025 .

La forma de instalarlo, más cómoda es utilizando una imagen de Docker (Dockerfile) utilizando
un fichero .yml y docker-compose instalado. Esto es:

version: "3"
services:
  mailcatcher:
    restart: on-failure:10
    image: dockage/mailcatcher:0.7.1
    ports:
    - "1086:1080"
    - "1030:1025"

El puerto 1086 de nuestro host, se corresponderá con el 1080 del contenedor de Docker
y el 1030, se corresponderá con el 1025 del contenedor.

De forma que para poder enviar un email a esta bandeja de entrada "virtual" , podemos configurar
nuestro fichero .env ( suponiendo que trabajemos con symfony 4.^) de la siguiente manera:

###> symfony/mailer ###
MAILER_DSN=smtp://127.0.0.1:1030
###< symfony/mailer ###

Arrancamos el contenedor :

docker-compose up

Y ya podemos enviar nuestros emails, desde SwiftMailer , el componente Mailer de Symfony , PHP u otra herramienta para el envío de correos electrónicos, que serán interceptados por
MailCatcher y podremos visualizar lo que hemos enviado sin tener que utilizar correos electrónicos reales.

fdo: roberto manchado

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay