Enviar correos desde la línea de comandos con sSMTP y Gmail
Enviar correos directamente desde la línea de comandos, a simple vista, puede no parecernos muy útil, puesto que si queremos enviar un correo, lo normal será que usemos una interfaz gráfica que nos permita poner emoticonos bonitos y letras con colores chillones. No obstante, enviar correos desde la línea de comandos puede permitir que nuestros scripts se comuniquen directamente con nosotros allá donde estemos. Si unimos esta capacidad para nuestros scripts junto con la programación de tareas con cron, podremos hacer que nuestro sistema haga absolutamente cualquier cosa que imaginemos con el añadido de que nosotros estaremos siempre informados de ello.
sSMTP, la herramienta elegida para enviar correos desde la terminal
Para llevar a cabo esta tarea podemos valernos de distintas herramientas, pero yo me quedo con sSMTP. sSMTP es una pequeña y ligerísima herramienta que reenviará todo el correo que enviemos a un servidor SMTP externo (como el de Gmail), que será el encargado de hacer la entrega al buzón de destino. Las ventajas principales que presenta sSMTP son las siguientes:
- Como he dicho anteriormente sSMTP reenvía el correo a un servidor externo, por lo que ni es una herramienta para leer correos, ni un servidor de correo ni nada que se le parezca, sSMTP simplemente reenvía correo, lo que lo hace extremadamente ligero.
- Usar sSMTP con el SMTP de Gmail nos va a garantizar que aunque estemos detrás de una IP con una reputación baja los correos no acabarán sepultados en la carpeta de SPAM de nuestros buzones.
Instalar y configurar sSMTP para enviar correos con el SMTP de Gmail
Nota: Los pasos indicados en las siguientes líneas están testeados en Ubuntu Server 14.04, no obstante, no debería representar un problema adaptarlo a cualquier otra distribución.
Lo primero que debemos hacer, como siempre, es instalar las herramientas necesarias, que en este caso son sSMTP y mailutils:
|
|
Después de instalar, deberemos editar el archivo de configuración principal, no sin antes hacer una copia del archivo original por si las cosas no salieran como deseamos:
|
|
Y deberemos dejarlo así (he borrado las líneas comentadas para hacerlo más compacto):
|
|
Evidentemente estos datos deben ser sustituidos por los de nuestra cuenta de correo.
Después de esto, debido a que la contraseña de nuestra cuenta está en texto plano en el archivo de configuración, deberemos asegurarnos de que solo serán capaces de leer esa información los usuarios estrictamente necesarios.
Para ello cambiaremos la propiedad del archivo y se la asignaremos al usuario root y al grupo mail:
|
|
Y posteriormente asignaremos los permisos para que el resto de usuarios no pueda leer el archivo:
|
|
Por último, añadiremos a los usuarios que queramos que tengan la capacidad de enviar correos mediante la herramienta al grupo mail:
|
|
Prueba de envío de correo desde la línea de comandos y un extra
Con estos pasos correctamente ejecutados ya debemos ser capaces de enviar correos desde la línea de comandos. Para comprobarlo simplemente ejecutaremos lo siguiente:
|
|
Si después de ejecutar esto nos dirigimos a nuestro buzón de correo veremos que tenemos un fantástico mail de asunto “Test” donde se nos indica que es un “Correo de prueba”.
Lo único malo de todo esto es que queda horrible si haces esto desde, por ejemplo, la cuenta root, puesto que en el nombre de la persona que envía el correo pone: root. Si queremos** cambiar el nombre del usuario que envía el correo con sSMTP**, simplemente deberemos modificar el “full name” de dicho usuario. En el caso de root esto sería:
|
|
Y a partir de ahora los correos llegarán de un tal: “Root del Servidor”.
Esta es una utilidad genial que instalar en nuestras Raspberry Pi o en cualquier servidor del que queramos recibir notificaciones.
¡En próximos post veremos como aplicar esta utilidad a algún script de monitoreo del sistema!