Cómo configurar el envío de emails con SSMTP
Desde siempre, un servidor Linux bien configurado necesita de un servidor de correos configurado de una forma muy particular para conseguir que las notificaciones de los servicios que corren, puedan enviarnos avisos y notificaciones. Un ejemplo de ello ha sido el uso del VoiceMail de Asterisk que nos envía un email cuando alguien nos deja un mensaje en el buzón de voz.
Hace ya algunos años explicamos en Sinologic cómo configurar el envío de email para que Asterisk nos pueda enviar mensajes y para ello utilizábamos uno de los MTA (Mail Transport Agent) más utilizados llamado Exim. No obstante, tanto si utilizas Exim, como Postfix, como SendMail, estás configurando un servidor íntegro de envío de emails, el mismo servidor que podría utilizar una empresa para todos sus empleados o para sus usuarios. Claro que nuestro servidor no necesita configurar permisos, cuentas de usuario, sistemas de antispam, antivirus, direcciones IP de reenvío de emails, etc, ya que lo único que queremos es que utilice una cuenta de otro servidor de email para enviar las notificaciones.
SSMTP, una aplicación para simplificar el envío de emails
Para eso justamente existe un servicio desde hace bastante tiempo llamado SSMTP (https://github.com/badoo/ssmtp) instalable desde paquetes propios de la distribución…
Así, en Debian/Ubuntu instalaríamos el paquete ssmtp con el siguiente comando:
sudo apt-get install ssmtp mailutils
La configuración de esta forma de configurar el envío de email es 1000 veces más sencilla que utilizando Exim, Sendmail, Postfix o similares… tremendamente sencilla y permite configurar una cuenta de email para que todas las notificaciones que envíe nuestro sistema Linux, se envíen utilizando dicha cuenta.
Qué necesitamos para enviar emails
Para configurar el envío de email en nuestro servidor Linux, debemos tener una cuenta de email válida y que funcione para envío de mensajes:
Servidor SMTP: smtp.miservidor.com
Puerto SMTP: 587
Usuario: superchuloemail@miservidor.com
Contraseña: $uperContraseña999
Una vez tengamos estos datos y hayamos comprobado que podemos enviar emails desde un cliente normal y corriente de envío de email, tan solo nos queda configurar la aplicación:
Cómo configurar el envío de email con SSMTP
La aplicación SSMTP tiene dos archivos de configuración muy sencillos:
El archivo revaliases nos sirve para definir qué cuenta debemos usar si un usuario del sistema envía un email. Generalmente los servicios suelen enviar email como ‘root‘, así que el archivo sería algo así:
# sSMTP aliases
#
# Format: local_account:outgoing_address:mailhub
#
# Example: root:your_login@your.domain:mailhub.your.domain[:port]
# where [:port] is an optional port number that defaults to 25.
root:superchuloemail@miservidor.com:smtp.miservidor.com:587
Y otro archivo ssmtp.conf que nos permitirá configurar los datos del servidor que queremos utilizar para enviar los mensajes de email:
#
# Config file for sSMTP sendmail
#
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
root=superchuloemail@miservidor.com
# 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=smtp.miservidor.com
# Where will the mail seem to come from?
#rewriteDomain=
# The full hostname
hostname=mi.servidor.com
# 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
AuthUser=superchuloemail@miservidor.com
AuthPass=$uperContraseña999
UseTLS=YES
UseSTARTTLS=YES
Con estos dos archivos, ya podemos hacer una prueba de envío de email con un comando básico de consola:
Comprobar que podemos enviar email desde el servidor
echo "Mensaje" | mail -s "Asunto" micorreopersonal@midominio.com