Hace ya bastantes años publiqué una entrada en la que explicaba la forma de enviar correos desde línea de comandos, incluido con adjuntos, utilizando el comando «mail», también hay otro en el que podéis enviar correos HTML con el módulo de perl MIME::Lite. En este caso os voy a explicar como utilizar mutt para enviar correos desde shell.
Mutt es un cliente de correo disponible sin entorno gráfico, en su día también publiqué un artículo con su utilización básica para consultar IMAP o POP desde mutt pero no indiqué como podíamos enviar correos. Los correos se pueden enviar desde la interfaz propia de mutt o directamente desde la shell bash o la que nos encontremos.
Un ejemplo básico sería el siguiente:
# echo "Esto es una prueba" | mutt -s 'Test' foo@gmail.com
En este caso se va a enviar un correo electrónico a «foo@gmail.com» con el asunto «Test» y el cuerpo del mensaje «Esto es una prueba.
También podemos personalizar las cabeceras del correo como por ejemplo el «From: «. También suele ser más común enviar el contenido de un archivo de texto con un «cat» en lugar de escribirlo en un «echo»:
# cat test.xt | mutt -e 'my_hdr From:Foo Bar <foo@bar.com>' -s 'Test' foo@gmail.com
Y enviar adjuntos con el parámetro «-a» de mutt:
# cat prueba.txt | mutt -e 'my_hdr From:Foo Bar <foo@bar.com>' -s 'Test' -a imagen.jpg foo@gmail.com