SSMTP, reenviar correos desde el sistema sin complicarnos la vida

por | enero 18, 2015

El otro día comenté en un artículo cómo solucionar uno de los problemas más molestos con Exim. Bueno, pues tienes otra opción mucho más radical que también es válida: utilizar otro programa que cumpla con la función de reenviar correos y mandar Exim a tomar viento fresco. Si únicamente necesitas recibir correos rutinarios de mantenimiento o avisos de seguridad, SSMTP (Simple SMTP) te será más que suficiente. No es un servidor de correo en sí, ya que simplemente se encarga de reenviar correos generados en el propio sistema a otra dirección de correo externa.

Si vamos a instalar SSMTP, antes deberíamos asegurarnos de no tener ejecutándose ningún servicio de otro servidor de correo como Exim, Postfix o Sendmail. No obstante al instalar SSMTP el gestor de paquetes apt-get o yum nos avisará de posibles conflictos con software de gestión de correo que pudiera estar presente en el sistema. Bien, en el caso de Debian o derivada pasamos a la instalación con:

apt-get install ssmtp

Con Red Hat o derivada:

yum install ssmtp

Una vez instalado, el fichero principal de configuración está en /etc/ssmtp/ssmtp.conf. Lo abrimos con un editor de texto, por ejemplo vi:

vi /etc/ssmtp/ssmtp.conf

Y una vez dentro modificamos los parámetros con nuestra dirección de correo, contraseña y servidor SMTP contra el que nos autenticamos. En este caso para el ejemplo he puesto el de gmail que escucha por el puerto 587 (smtp.gmail.com:587). Sustituye MICORREO y MICONTRASEÑA por los valores apropiados.

# The user that gets all the mails (UID < 1000, usually the admin)
root=MICORREO@gmail.com

# The mail server (where the mail is sent to), both port 465 or 587 should be acceptable
# See also http://mail.google.com/support/bin/answer.py?answer=78799
mailhub=smtp.gmail.com:587

# The address where the mail appears to come from for user authentication.
rewriteDomain=gmail.com

# The full hostname
hostname=localhost

# Use SSL/TLS before starting negotiation
UseTLS=Yes
UseSTARTTLS=Yes

# Username/Password
AuthUser=MICORREO@gmail.com
AuthPass=MICONTRASEÑA

# Email 'From header's can override the default domain?
FromLineOverride=yes


 

Una vez especificados y guardados los parámetros, probamos a mandar un correo de prueba con el comando mail:

echo "Este es un correo de prueba" | mail -s "testmail" MICORREO@gmail.com

Procederemos a entrar en la bandeja de entrada de MICORREO@gmail.com y podremos ver el correo que hemos enviado con asunto «testmail» y el contenido «Este es un correo de prueba». Esto que es tan sencillo podríamos utilizarlo para enviar informes de carga de servidores (por ejemplo, con «uptime») y configurando un cron para que cada X tiempo, se enviara a nuestro correo la información que queramos.

Recordar que tendréis que dar salida por el firewall para el envío de correos:

iptables -A OUTPUT -p tcp --sport 587 -j ACCEPT

SSMTP es por tanto una opción sencilla que os quita de encima tener que administrar un servidor de correo con todo lo que esto implica en el caso de Exim: varios ficheros de configuración de tedioso entendimiento, políticas de seguridad frente a posible correo entrante, etc…