En el siguiente artículo vamos a echar un vistazo al comando Mail. Hoy en día existen muchas maneras de enviar correos electrónicos, bien sea utilizando GUI, usando el navegador o con un cliente de correo electrónico. Pero las opciones se vuelven más limitadas cuando se trata de la interfaz de línea de comando (CLI). Por eso en este post vamos a ver cómo enviar correos desde la terminal de un sistema Gnu/Linux.
Hay algunas opciones que podemos utilizar para enviar correos desde la terminal, como podrían ser Sendmail, Mutt, etc. Pero en estas líneas, veremos cómo utilizar el comando Mail para enviar correos desde la terminal de nuestro sistema. Este comando lo vamos a poder utilizar directamente desde la terminal o también podemos usarlo cuando programemos nuestros scripts de BASH.
Antes de empezar a utilizarlo, vamos a tener que instalar este comando de correo, en caso de que nuestra distribución no disponga de el de manera predeterminada.
Instalación
Como digo, muchas distribuciones Gnu/Linux, disponen del comando de correo de manera predeterminada, pero si este no es el caso de tu sistema, decir que se puede instalar utilizando unos pocos comandos. Para este artículo he de decir que yo estoy utilizando Ubuntu 18.04 LTS. En caso de tener que instalar el programa en Ubuntu/Debian/Linux Mint, podemos usar apt-get para instalar el comando en nuestros sistemas. Abrimos una terminal (Ctrl+Alt+T) y escribimos:
sudo apt-get install mailutils
Ejemplos para enviar correos desde la terminal
Enviar un correo simple
Para enviar un correo simple, tan solo con algún contenido en el cuerpo, ejecutaremos:
mail -s "Email simple enviado desde la terminal" nonaino@mail.com
En este comando, la opción -s se usa para mencionar el asunto del correo. Sigue la dirección de correo electrónico a la que queremos enviar el correo. Ahora, después de ejecutar el comando anterior, necesitamos escribir el contenido del cuerpo. Una vez que hayamos terminado, pulsaremos la combinación de teclas CTRL+D para salir y enviar el correo.
En nuestro gestor de correo recibiremos algo como lo siguiente. He de reconocer que de primeras, el correo lo he encontrado en la carpeta de span.
También podemos usar el siguiente comando en una sola línea para enviar el correo:
mail -s "Email de prueba" nonaino@mail.com <<< "Este es el cuerpo del correo"
Enviar correo a destinatarios múltiples
Para enviar correos a más de un usuario, tan solo tendremos que mencionar todas las direcciones de correo electrónico separadas por una coma. Un ejemplo de ello sería:
mail -s "Email a varios usuarios" usuario1@mail.com,usuario2@mail.com,usuario3@mail.com
Los usuarios a los que se les envía el correo, recibirán algo como lo siguiente:
Enviar un correo con archivo adjunto
Otra opción que tendremos, será la de enviar un correo con un archivo adjunto. Para esto utilizaremos la opción ‘A’ con el comando Mail. He de decir que el archivo que envío en este ejemplo está en la misma carpeta en la que me encuentro mientras envío el correo. Por ejemplo, si quisiésemos enviar un archivo llamado ‘texto.txt’, utilizaríamos el siguiente comando:
mail -s “Correo con archivo adjunto” nonaino@mail.com -A texto.txt
El usuario que reciba el correo, verá en su gestor de correo algo como lo que se puede ver en la siguiente captura:
Enviar el contenido de un archivo en el mail
Para enviar el contenido de un archivo usando el comando mail escribiremos en la terminal:
mail -s “Salida del archivo” nonaino@mail.com < /home/sapoclay/texto.txt
El usuario recibirá el contenido del archivo directamente en el cuerpo del correo. Como se puede ver en la siguiente captura, no se envía como adjunto el archivo en cuestión, como ocurría en el anterior apartado.
Enviar un correo con la salida de un comando
Vamos a poder enviar la salida de un comando como el contenido del cuerpo del correo. Por ejemplo, si necesitamos enviar la salida de ‘cat /home/sapoclay/.config/mimeapps.list‘ utilizaríamos:
cat /home/sapoclay/.config/mimeapps.list | mail -s "Envío del resultado de un comando" nonaino@mail.com
Enviar un correo con el comando echo
También podemos hacer uso del comando echo para enviar un correo electrónico.
echo "Este es el cuerpo del email" | mail -s "Prueba de correo" nonaino@mail.com
Enviar un correo con encabezados adicionales
Para enviar un correo con encabezados adicionales, utilizaremos la opción ‘a’ con el comando de correo.
mail -s "Correo con encabezados adicionales" -a From:sapoclay\<usuario1@casimailx.com\> nonaino@mail.com
El resultado recibido por el usuario sería el siguiente:
Con esto damos por terminado el artículo. Estos fueron solo algunos ejemplos comunes del uso de este comando. Buscando un poco por internet se pueden encontrar algunas otras. También podremos encontrar más documentación sobre este comando haciendo uso de las páginas man en la terminal (Ctrl+Alt+T):
man mail
4 comentarios, deja el tuyo
Me da la sensación de que ni siquiera el que ha redactado este tutorial es consciente de lo que supone no configurar un MTA. Para que los lectores noveles me entiendan, este tutorial, tal como está escrito, solo sirve para enviarse correos a uno mismo aunque en ningún momento se advierte de esta gran deficiencia.
Los tutoriales de ubunlog solían tener más calidad. Es una pena.
Lo bueno del artículo sería como configurar un servidor de correo, o configurar gmail…
Soy novel, pero he visto cosillas sobre el tema de correos, para gmail tuve que configurar alguna que otra cosa.
Sería interesante algo un poco más concreto y como digo, para un montar un servidor de correo o qué archivos se deben tocar.
¿Puedes comentar algo sobre MTA?
Un saludo y gracias.
consulta, y dónde se configura el mail para poder enviar??? se coloca un smtp? no entiendo
Magicamente los mails no se enviarían por sí solos. Falta una referencia de salida
Al menos yo no soy el único pelotudo que se da cuenta que este tutorial no esta completo, acabo de instalar ubuntu y no funciona nada de las cosas que aqui se dicen. MIERDA!