Configurar mail/mailx en Linux

He pasado un par de días, desde que hube de formatear mi Linux Mint 19.3 para actualizarlo a Linux Mint 20.1 recuperando pequeñas personalizaciones que había hecho en el PC.

Una de ellas es la herramienta (script) de realización de BackUps que, entre otras cosas, me envía por correo electrónico diariamente el resultado de la sincronización realizada.

Lo uso desde hace más de 10 años y lo he ido perfeccionando con el paso del tiempo. Entre otras cosas, ahora lo ejecuto con un «cron«, de línea de comandos, que hace una llamada al programa en cuestión y envía el correo informativo utilizando el programa mail del sistema operativo.

Pero he tardado mucho en configurarlo.

No recordaba qué había que hacer para que funcionase, pero, tras unas cuantas horas, lo he logrado con un par de cosas sencillas que no sé muy bien porqué no tenía apuntadas.

Tenía una restricción, más o menos tonta autoimpuesta, que era que no quedase abierto un servidor SMTP (ni su puerto 25) permanente en el PC (obsesiones absurdas de seguridad), así que algunas de las soluciones que pasan por instalar un MTA como Sendmail o Postfix estaban descartadas. (Aunque también las probé, ya cuando empezaba a desesperar)

Por más que intentaba configurar mailutils (que incluye mail/mailx) no conseguía enviar un correo fuera del equipo, utilizando una cuenta de correo personal en mi hosting preferido (giusseppe.net). Creo que revistando la información del manual de mailutils sí que habría sido posible enviar correos sin que fuese preciso instalar nada más, pero no daba con la forma, así que probé con alternativas a mailutils, como era s-nail, pero me daba resultados no deseados y algunas configuraciones que había que hacer no me apetecía tenerlas así.

Finalmente, instalé sSMTP y su configuración fue trivial:

sSMTP es un programa que entrega correo electrónico desde un ordenador local a un servidor de correo configurado (mailhub). No es un servidor de correo (como si lo es el servidor de correo rico en funciones sendmail) y no recibe correo, ni expande alias, ni administra una cola. Uno de sus usos principales es reenviar el correo electrónico automatizado (como las alertas del sistema) desde su equipo a una dirección de correo electrónico externa.

Por supuesto, tenía que instalar el pequeño programita mailutils que serviría para los comandos mail/mailx. No he optado por ninguna de las alternativas que no aportan nada que me sea útil. (No obstante, también se puede enviar correo sólo usando sSMTP, pero no se dispone del comando mail)

Para instalar ambas utilidades, bastaba un simple:

sudo apt-get update && sudo apt-get install ssmtp mailutils

 

Y después proceder a configurar el fichero /etc/ssmtp/ssmtp.conf con lo siguiente:

#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=jmdomin@giusseppe.net

# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
mailhub=mail.giusseppe.net:587
AuthUser=jmdomin@giusseppe.net
AuthPass=LAFAMOSACONTRASEÑA
UseSTARTTLS=YES

# Where will the mail seem to come from?
#rewriteDomain=

# The full hostname
hostname=giusseppe.net

# Are users allowed to set their own From: address?
# YES - Allow the user to specify their own From: address
# NO - Use the system generated From: address
#FromLineOverride=YES

 

Ahora mis correos salen estupendamente y lo puedo poner a prueba con un simple:

echo "Este es el cuerpo del mensaje" | mail -s "Este es el subject" jmdomin@gmail.com

Esto no es una broma