Enviar Email desde la Terminal de Linux » Blog de Notas | Soy Facus

sábado, 20 de julio de 2013

Enviar Email desde la Terminal de Linux

Hola, buenas!

Como sabrán, GNU/Linux es un sistema operativo muy poderoso y creo que en gran medida esto es así gracias al poder de la consola de comandos o terminal linux.

Justamente es a ella a quien los novatos le temen, pero créanme, cuando comiencen a darse cuenta de lo simple y útil que es, la van a querer un montón.

Email-desde-Consola

En esta Nota, les quiero mostrar como con unas simples líneas podremos estar al tanto de lo que pasa dentro de nuestro sistema sin tener que estar delante de él. Y hasta enterarnos de las cosas sin siquiera preguntar.

 Quizás esto sea muy útil para generar alertas en nuestro sistema y luego poder ingresar a través de SSH de forma remota para tomar cartas en el asunto.

Tras el salto veremos como enviar e-mails desde nuestra terminal hacia nuestra casilla de correo con la aplicación Mutt.
salto

Mutt es un cliente de correo electrónico libre basado en texto y se ejecuta a través de la terminal en sistemas Unix. Si bien es toda una aplicación que ofrece una interfaz de "ventana" sobre la ventana de la terminal, en esta Nota solo usaremos algunos comandos de su suite.

Se encuentra en repositorios, así que procedemos a la instalación:

sudo aptitude install mutt

En el proceso de instalación, es probable que nos solicite configurar Postfix. Aquí creo que cualquier configuración estará bien para el fin al que en esta Nota nos compete. Podremos configurar a lo Window$ (siguiente, siguiente, aceptar, aceptar).


Ahora, para configurar Mutt, tendremos que seguir estos pasos:

Crear un directorio "Mail" (si es que aún no existe) y el directorio de Mutt en tu Home:

mkdir ~/Mail ~/.mutt

Ahora debemos crear el fichero de configuración ".muttrc" que estará en el directorio de Mutt.

gedit ~/.mutt/.muttrc

Y pegar lo siguiente en su contenido:

set from = "TU_CUENTA@gmail.com";
set realname = "TU_NOMBRE";
set imap_user = "TU_CUENTA@gmail.com";
set imap_pass = "PASSWORD";

set folder = "imaps://imap.gmail.com:993";
set spoolfile = "+INBOX";
set postponed ="+[Gmail]/Drafts";
set header_cache =~/.mutt/cache/headers;
set message_cachedir =~/.mutt/cache/bodies;
set certificate_file =~/.mutt/certificates;

set move=no #para que no mueva los mensajes al salir
set include=yes #para que incluya el mensaje recibido al responder
set reply_to=yes
set pager_index_lines=6

set smtp_url = "smtp://TU_CUENTA@smtp.gmail.com:587/";
set smtp_pass = "PASSWORD";

Completar los datos que dejé en negrita respetando siempre las comillas.

Aclaración: como se darán cuenta, esta configuración solo funciona para una cuenta de email de Gmail, la cual se utiliza para hacer los envíos. Si no tienes una cuenta de Gmail, puedes aprovechar esta oportunidad para creártela ;)

En cuanto a la seguridad, es recomendable adecuar los permisos de lectura a este fichero de configuración ya que nuestra contraseñas está expuesta en texto plano. Lo ideal, a mi forma de ver, es usar una cuenta alternativa de Gmail.


Con esto, ya podremos comenzar a enviar e-mails desde la línea de comandos y después, incluso, crear nuestros propios scripts.

De esta forma, para enviar un simple mensaje, haremos lo siguiente:

echo "Este es el cuerpo del mensaje" | mutt -s "Este es el Asunto" destinatario@servidor.com

Aclaración: En el caso de que hayan enviado el e-mail de prueba y no lo reciban, quizás deberán copiar el archivo de configuración directamente en su Home o crear un Enlace Blando: ln -s ~/.mutt/.muttrc ~/.muttrc


También podremos enviar una copia carbón (CC:) agregando otro destinatario con la opción -c:

echo "Mensaje" | mutt -s "Asunto" -c otrodestinatario@servidor.com destinatario@servidor.com

El último ejemplo que quiero mostrarles, es la posibilidad de enviar archivos adjuntos con la opción -a de esta manera:

echo "Te adjunto los archivos" | mutt -s "Asunto" -a ~/Docs/file1.odt ~/Docs/file2.odt -- destinatario@servidor.com

Nótese que se pueden adjuntar varios archivos, y siempre se termina con doble guión (--) para indicar el final de argumentos. De lo contrario, tomaría al destinatario como otro fichero a adjuntar.


Otra característica a destacar es que Mutt toma lo que llegue a la entrada estándar a lo que después asignará como "Mensaje". Esto puede ser un simple texto -como lo vimos anteriormente- o el texto de un fichero "plantilla" o la salida de un comando:

cat ~/Docs/plantilla | mutt -s "Asunto" destino@servidor.com

free | mutt -s "Memoria Libre" destino@servidor.com

df | mutt -s "Espacio en Discos" destino@servidor.com

Y ahí van viendo como esto puede ser infinitamente adaptable a nuestras necesidades. Podremos crear scripts para administrar nuestro sistema y que nos brinde información al email; Podremos introducir rutinas al Cron; etc, etc.

Esta es solo la punta del iceberg, todo depende de tu imaginación y creatividad. Para mayor información sobre Mutt, consulta las páginas del manual:

man mutt


Ya te dan ganas de probarlo, ¿verdad?


Espero que les resulte interesante esta Nota tanto como a mí.
Para cualquier duda que tengan, pueden dejarme un comentario ;)


Saludos!




SoyFacus | y mi consola me manda Mails.

<---- Compartilo desde la barra social. (Facebook, Twitter y/o Google Plus)

0 comentarios:

Publicar un comentario

Dale, dejame saber que opinás..

Ingresar un Nick en "Nombre/URL" o logueate en Google, OpenID, AIM, TypePad, WordPress o LiveJournal.