DEV Community

Horacio Degiorgi
Horacio Degiorgi

Posted on

1

Enviar correo con Gmail-Relay

Escenario:
Aplicación corriendo dentro de la intranet sin acceso de salida a internet en forma directa.
La aplicación requiere enviar correo usando una cuenta gmail.
El puerto 465 es inaccesible desde el server.
Tengo un servidor con varios dockers corriendo en una ip a la que si puedo acceder desde la aplicación.
Búsqueda en google me entrega varias alternativas como usar algunas reglas de iptables, un binario que hace de relay pero también un docker que hace todo el trabajo.
https://hub.docker.com/r/namshi/smtp/

Permite correr en una instancia de docker un relay que envía todo el correo que recibe utilizando una cuenta de gmail.
Algo que simplifica todo en una línea de docker o con docker-compose.

version: '3'
services:
smtp:
image: namshi/smtp
container_name: smtp_relay
ports:
- "25:25"
environment:
# # Solo habilitamos a enviar correo desde la ip del server que aloja la aplicación
- RELAY_NETWORKS= :172.22.130.115/32
# # Define el usuario y clave desde donde se enviaran los correos.
- GMAIL_USER=miusuario@gmail.com
- GMAIL_PASSWORD=miclave

Luego solo falta colocar en el archivo .env de laravel lo necesario para apuntar al nuevo relay smtp.
MAILER_HOST= IP-del-server-docker
MAILER_PORT=25 (PUERTO EXPUESTO)

Et voilá todo funcionando.
Usando docker-compose log -f podemos ver el log del relay funcionando

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Image of Datadog

Create and maintain end-to-end frontend tests

Learn best practices on creating frontend tests, testing on-premise apps, integrating tests into your CI/CD pipeline, and using Datadog’s testing tunnel.

Download The Guide