Enviar un email es algo que puede ser trivial pero hay ocasiones que necesitamos enviar información, datos o algún aviso importante y solo hay disponible un servidor linux sin interfaz gráfica con una terminal. Bueno incluso en estas condiciones es posible enviar un email desde la terminal alguna cuenta de tus cuentas de email incluso si la configuración de esa cuenta requiere cifrado. Esto te permitirá poder enviar ese mensaje importante a alguien o enviar un e-mail desde algún script para advertir que algo ha sucedido en tu servidor. Bueno aquí te digo como puedes enviar ese correo desde la linea de comandos.
Como enviar un email desde la terminal con swaks
Lo primero que tienes que saber es que necesariamente no necesitas instalar un servidor de email o algo así, solamente necesitas algun software que está disponible en casi cualquier distro linux. Esta herramienta se llama Swiss Army Knife for SMTP o swaks.
Swaks es un software diseñado para probar y auditar comunicaciones mediante el protocolo SMTP y que entre esas pruebas permite enviar un correo que es lo que nos interesa.
Lo primero que tenemos que hacer es tener este software instalado en nuestro servidor y para hacerlo podemos ejecutar alguno de los siguiente comando dependiendo de la distribución que estemos utilizando:
Debian (con permisos de root)
apt-get install swaks
Ubuntu y derivadas
sudo apt-get install swaks
Fedora / CentOS / RHEL
yum install swaks
Ahora lo que tienes que hacer es poner el comando con el que enviarás un correo utilizando swaks y que parece que es complicado pero que si pones atención solo es poner todo lo que pones en un correo común y corriente pero usando un comando algo largo.
Para describir como usar este comando voy a usar un ejemplo con una cuenta que utiliza cifrado TLS por el puerto 587,
swaks --to "alguna_cuenta@gmail.com" --from "tu_cuenta@tu_dominio.com" --server "tu_dominio.com:587" --auth LOGIN --auth-user "tu_cuenta@tu_dominio.com" --auth-password "tu_password" -tls
Este comando enviará un correo de prueba que podrás ver en tu bandeja de entrada se verá como esto:
Subject: test Tue, 12 May 2015 16:21:37 -0500 Message: This is a test mailing
Si quieres enviar algo mas personalizado y descriptivo puedes agregar este otro parámetro en el que puedes enviar el título y el mensaje que desees:
--data "Date: %DATE%\nTo: %TO_ADDRESS%\nFrom: %FROM_ADDRESS%\nSubject: Titulo par tu email %DATE%\nX-Mailer: swaks v$p_versionjetmore.org/john/code/swaks/\n%NEW_HEADERS%\n Mensaje que quieran enviar en tu correo \n"
Si tu servidor smtp no usar cifrado tls puedes eliminar el puesto 587 y se utilizará el 25 por defecto, también debes quitar el parámetro -tls del comando para que no se utilice el cifrado. El comando se vería así:
swaks --to "alguna_cuenta@gmail.com" --from "tu_cuenta@tu_dominio.com" --server "tu_dominio.com" --auth LOGIN --auth-user "tu_cuenta@tu_dominio.com" --auth-password "tu_password"
Es claro que esto no puedes escribir todo esto en una termina a la primera y sin equivocarte, pero puedes crear un pequeño script bash para hacerlo mas fácil.
Lo que creo importante es saber que existe una forma de enviar un email desde la terminal o que se puedes configurar a un script bash para que cuando algo ocurra en tu servidor recibas un aviso mediante un correo.
Tu Servidor y Amigo
Sígueme en Twitter: @larmedina
Sígueme en Facebook: dame un like LuisMedinaMLM
Referencias: http://www.jetmore.org/john/code/swaks/
By Marco Antonio Galvan 06/18/2015 - 12:41 am
me interesa aprender como manejar ubuntu todo lo que sea posible
By Humberto 10/20/2018 - 4:23 pm
Estimado Luis.
Como le indico a swaks que no muestre nada en pantalla. Es justamente para usar swaks en un script que ejecuto con cron, asi el script me envia la direccion IP actual, pero no quiero que me muestre nada en la terminal. He leido la documentacion de swaks y veo un comando -S otro -ha pero ubicados como parametros al invocar swaks sigo viendo mensajes en la terminal. Desde ya muchas gracias.
By Humberto 10/20/2018 - 4:30 pm
En referencia a mi comentario anterior sobre no ver mensajes en la terminal, usando una combinacion de -S y -ha, no muestra nada en la terminal, que era lo que yo queria. Gracias
By Alberto 04/25/2020 - 7:17 pm
Muchísimas gracias por compartir tus conocimientos, Luis Armando. Estas cosas no tienen precio.
Saludos desde España.