Adjuntar ficheros en correos desde la terminal en Debian Stretch

By | October 14, 2017

Para enviar correos desde terminal siempre podremos utilizar el clásico programa mail. Sin embargo en su actual versión ninguna de las opciones disponibles nos dejará adjuntar ficheros a nuestros correos, lo que limita bastante la funcionalidad de la herramienta. Típicamente podíamos adjuntar correos con la opción -a, pero actualmente dicha opción es para modificar headers:

La alternativa más directa y sencilla es utilizar Mutt. Lo podemos instalar en nuestro sistema Debian con apt-get:

apt-get install mutt

Para utilizarlo la sintaxis es prácticamente igual que con mail. Con un echo podemos pasarle el cuerpo del mensaje. La opción -s es para el título del correo (subject) y -a para adjuntar (attach) un fichero o tantos ficheros como deseemos. Nuestro correo tendrá que ir especificado después de los signos -- al final:

echo "Cuerpo del mensaje" | mutt -s "Correo de prueba" -a fichero1 fichero2 -- correo@example.com

Cuando enviéis el correo comprobad en /var/log/mail.log que se hace con un mínimo de seguridad conectando con protocolo SSL con el servidor (aunque esto no quiere decir que el correo en sí vaya cifrado):

...
Oct 14 17:46:58 jota-pc sSMTP[17662]: Creating SSL connection to host
Oct 14 17:46:58 jota-pc sSMTP[17662]: SSL connection using RSA_AES_128_CBC_SHA1
...

Error GPGME: CMS protocol not available

Si observáis dicho error al mandar un correo es porque no tenéis instalado el paquete gpgsm (GNU Privacy Guard utilizado en mensajes S/MIME). El tema ya fue tratado en las listas de bugs de Debian. Podremos optar por instalar el paquete correspondiente:

apt-get install gpgsm

O bien por deshabilitar el uso de GPGME en /etc/Muttrc.d/gpg.rc modificando:

set crypt_use_gpgme=yes

A:

set crypt_use_gpgme=no

En cualquier caso, si no utilizamos cifrado para los correos el error debería considerarse únicamente un warning ya que no afecta a la funcionalidad de envío de correos como tal.