Configurar el reenvío (relay) de correos en Sendmail y probarlo a traves de telnet

Los reenviadores de correo son muy útiles en las empresas, y es que diferentes equipos de red puedan enviar mensajes de alerta, notificaciones, problemas, etc.

El siguiente proceso lo he ejecutado en un servidor Ubuntu Server 20.04, pero aplica para Debian o Linux Mint, también utilizando los parámetros de configuración de una cuenta Office365.

Instalar Sendmail

Para instalar Sendmail ejecutamos los siguientes comandos.

sudo apt update
sudo apt install sendmail mailutils sendmail-bin sasl-2bin

Ejecutamos Sendmailconfig y respondemos «Y» a todo.

sudo sendmailconfig

Luego configuramos la autenticación con la cuenta de correos que utilizaremos con el reenvio

sudo su
mkdir -m 700 /etc/mail/authinfo/
cd /etc/mail/authinfo/
nano office365-auth

Dentro de este archivo agregaremos lo siguiente y sustituye según tu caso.

AuthInfo: "U:root" "I:YOUR OFFICE365 EMAIL ADDRESS" "P:YOUR PASSWORD"

Supongamos que es la cuenta de correo Office365 cuentadecorreoreenviador@dominio.com la linea quedaria asi.

AuthInfo: "U:cuentadecorreoreenviador@dominio.com" "I:cuentadecorreoreenviador@dominio.com" "P:password"

Luego ejecutamos el comando.

# makemap hash office365-auth < office365-auth

Configurar Sendmail

Para configurar Sendmail primero debemos editar el archivo /etc/mail/sendmail.mc agregando el siguiente contenido justo en la siguiente linea del primer MAILER que encuentres.

define(`SMART_HOST',`[smtp.office365.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo/office365-auth.db')dnl

Busca la linea siguiente.

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl 

Cambia la IP localhost o «127.0.0.1» por la IP de tu server, si esta es por ejemplo «192.168.0.100», la linea deberia quedar asi.

DAEMON_OPTIONS(`Port=smtp,Addr=192.168.0.100, Name=MTA')dnl 

Ahora crea el archivo /etc/mail/relay-domains y en este escribe las direcciones IP una por linea de los servidores o equipos que podran utilizar el reenviador de emails para enviar correos, por ejemplo, 192.168.0.201.

Ahora es hora de compilar los cambios y reiniciar el demonio de sendmail con los siguientes comandos.

make -C /etc/mail
systemctl restart sendmail
systemctl status sendmail

Probar el reenvío de correos con telnet

Desde el equipo donde piensas enviar correos ejecuta el siguiente comando.

telnet 192.168.0.100 25

Donde «192.168.0.100» es la IP del servidor sendmail reenviador y «25» el puerto SMTP donde escucha sendmail.

telnet 192.168.0.100 25

Luego de conectar con telnet ejecuta el siguiente comando.

helo server

El servidor te va a contestar algo parecido a lo siguiente.

250 emailrelay Hello IDENT:0@[192.168.0.200], pleased to meet you

Luego ejecuta el comando.

mail from: cuentadecorreoreenviador@dominio.com

Sustituye «cuentadecorreoreenviador@dominio.com» por la cuenta que pusiste en el archivo office365-auth, al dar Enter el servidor debería responder algo parecido a lo siguiente.

250 2.1.0 cuentadecorreoreenviador@dominio.com... Sender ok

Ahora ejecuta el comando siguiente

rcpt to: cuentadealguien@gmail.com

Sustituye «cuentadealguien@gmail.com» por la cuenta de correo a la que quieres enviar una prueba, al dar Enter el servidor deberia responder algo parecido a lo siguiente.

250 2.1.5 cuentadealguien@gmail.com... Recipient ok

Si la respuesta es negativa, es porque no agregaste la IP del equipo desde el que estas ejecutando telnet en el archivo «relay-domains», luego ejecuta el siguiente comando.

data

Ahora escribe todo el contenido que ira en el correo, puede ser algo tan simple como «Correo de prueba» presionas Enter y luego escribes un «.» y presionas nuevamente Enter para finalizar, el servidor deberia responder con algo parecido a lo siguiente para confirmar que el correo ya fue enviado.

250 2.0.0 19GLNXqu013938 Message accepted for delivery

Listo, con esto solo resta que verifiques que recibiste el correo e ir agregando los otros equipos o redes que podran enviar correos a traves de tu nuevo reenviado.