martes, 18 de octubre de 2016

Como enviar correo desde la consola, sin tener un MTA local, usando SSmtp


Hace tiempo me encontré con el dilema de incluir en un bash script de respaldo que estaba programando la funcionalidad de enviar un correo electrónico al administrador con el resumen de la tarea realizada. Empezé a revisar y la única manera que encontré para ejecutar dicha tarea era instalando y configurando un MTA tipo Sendmail o Postfix.

Lo malo es que tengo la costumbre de desintalar cualquier servicio o programa que no considero útil para la función del servidor. En este caso se trataba de un servidor con CentOS 6.x que funciona como proxy caché, por lo que el MTA fue desinstalado desde en la primera arrancada del sistema. 

Buscando y buscando en varios foros, dí con un programa llamado SSmtp que me permite enviar correos desde consola sin tener que instalar localmente un MTA.  

Manos a la obra: 
A continuación detallo el procedimiento de instalación y configuración necesario para enviar correo desde consola usando SSmtp. La distribución sobre la cual se han realizado las pruebas es CentOS 6.3. 

Instalamos la herramienta:
yum install ssmtp
Antes de ajustar la configuración a nuestras necesidades, sacamos una copia del archivo ;) :
cd /etc/ssmtp
cp ssmtp.conf ssmtp.conf.copy
Modificamos la cofiguración:
nano ssmtp.conf
mailhub=mail.midominio.com.ec:587
FromLineOverride=YES
UseSTARTTLS=YES
AuthUser=iknaxiomarx
AuthPass=P455m4rx
En donde:
  • mailhub: Es el nombre del host del servidor de correo electrónico que voy a utilizar para el envio y el puerto por el que escucha.
  • FromLineOverride: Especifica si el encabezado de un correo electrónico, si lo hay, puede reemplazar el dominio predeterminado.
  • UseSTARTTLS: Si se hace un EHLO / STARTTLS antes de iniciar la negociación SSL.
  • AuthUser: Nombre de Usuario a usar para SMTP AUTH
  • AuthPass: Clave de Usuario a usar para SMTP AUTH
Cabe recalcar que el valor de las variables antes expuestas depende de la configuración del servidor al cual nos vamos a conectar para enviar el correo, por lo que si por ejemplo: el servidor no usa SMTP AUTH no será necesario fijar las variables AuthUser y AuthPass. 

Una vez lista la configuración procedemos a probarla, para lo cual vamos a preparar un archivo con el contenido del correo:
nano /tmp/pruebita.txt
From: usuario089@midominio.com.ec
Subject: Correo de Prueba

Hola Mundo!
Ejecutamos el envío:
ssmtp imarx.ecualug@gmail.com < /tmp/pruebita.txt
Para más de un destinatario, simplemente escribimos sus direcciones separadas por espacios en blanco:
ssmtp imarx.ecualug@gmail.com admin.procesos@midominio.com.ec < /tmp/pruebita.txt
Podemos revisar las respectivas páginas de manual para explotar al máximo esta herramienta:
man ssmtp
man ssmtp.conf
Espero que les sea de utilidad :D

Saludos,

Referencias:

"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio