30 de Octubre, 2004

Un lector de mbox

Resulta que uso POP3 (Post Office Protocol en su versión 3) para recoger el correo. Este protocolo nos permite descargar del servidor los correos a nuestro MUA (Mail User Agent). Esto está muy bien cuando siempre recogemos el correo desde el mismo sitio, pero en determinados casos puede ser interesante leer el correo de forma remota.

La solución pasa por emplean un cliente de correo en consola que nos permita desde una sesión SSH consultar nuestro correo más o menos cómodamente. Ojo que no hablo de webmail porque suelen requerir el protocolo IMAP y partimos desde la premisa de que solo usamos POP.

Mi MUA de elección es Mozilla Mail, que casualmente almacena los correos en ficheros mbox (Mail BOX, un formato bastante 'clásico' para almacenar correo en disco).

La idea es que como habitualmente tengo Mozilla abierto aunque no esté trabajando con la máquina, buscar un programa en consola que me permita leer los mbox que va manteniendo el MUA, y que cuando vuelva a casa tenga los mensajes en mi Mozilla como si nada hubiera pasado.

Pues he buscado y, como pasa muy habitualmente, la solución estaba en casa: mail (1). Cualquiera que conozca el programa estará pensando: a este se le ha terminado de ir la pinza. Pues, por ahora, no :D.

El correo de Mozilla suele estar en:

~/.mozilla/default/<aleatorio>.slt/Mail/

En mi caso hay directorios dentro de Mail para cada una de mis cuentas, redirectores, etc; además dentro hay directorios en los que clasifico el correo.

Supongamos que me sitúo dentro una de las cuentas. Vemos distintos ficheros:

$ ls -sF
total 48
   0 Drafts        0 filterlog.html      4 popstate.dat      0 Trash
   4 Drafts.msf    4 Inbox               0 Sent              4 Trash.msf
   0 elxwifi       4 Inbox.msf           4 Sent.msf          4 Trash.sbd/
   4 elxwifi.msf   4 Inbox.sbd/          0 Templates
   4 elxwifi.sbd/  4 msgFilterRules.dat  4 Templates.msf

Los ficheros mbox no llevan extensión y tienen un fichero .msf asociado (que no nos sirve para nada, son cosas de Mozilla). En los casos que hay un directorio .sbd se tratará de una carpeta de Mozilla para clasificar correo.

En este caso tenemos los mbox para el buzón de entrada (Inbox), la papelera (Trash), los correos enviados (Sent), etc.

Supongamos que quiero leer los correos del buzón de entrada. Antes vamos a poner algunas opciones a mail para hacerlo más "confortable". En ~/.mailrc:

set indentprefix="> " hold

Con indentprefix indicamos como queremos que se citen los mensajes al responder y con hold indicamos que por defecto no se modifiquen los mbox. Esto último es porque con Mozilla en marcha puede ser mala idea cambiar el contenido de los ficheros que tiene en uso.

Consultemos nuestro correo in the freak way :D:

$ mail -f Inbox
Mail version 8.1.2 01/15/2001.  Type ? for help.
"Inbox": 1 message 1 new
>N  1 jjm@dominiofalso.com    Sat Oct 30 13:46   25/977   Probando
&

Mail nos indica nada más arrancar información bastante útil: mensajes que hay, cuantos son nuevos, nos muestra las cabeceras de los n primeros, etc.

La ejecución de Mail es interactiva. Se queda esperando en el & a que introduzcamos órdenes. Las más básicas son:

x
Salir sin modificar nada (el hold asegura esto aunque salgamos con q).

t [mensaje]
Leer el mensaje [mensaje].

h
Muestra las cabeceras. Al entrar en Mail ya lo hace.

f [mensaje]
Salta al mensaje [mensaje]. Esto es esencial cuando tenemos muchos correos. Si hay 520 mensajes, con f 510 iríamos al mensaje número 510, viendo posteriormente las cabeceras de los 10 últimos (osea, hasta el 520) empleando la orden h.

Con esto ya podemos manejarnos con el correo y leer los mensajes que queramos. Ahora... ¿y si queremos contestar uno?

Vamos con nuestro ejemplo. Para responder al mensaje 1 tenemos dos opciones:

R [mensaje]
Responder solo al remitente del mensaje [mensaje].

r [mensaje]
Responder a todos en el mensaje [mensaje].

Vamos allá:

& R 1
To: jjm@dominiofalso.com
Subject: Re: Probando

Y ahí se queda esperando a que escribamos el contenido del correo. Con Ctrl + D indicamos que hemos terminado.

Escribir un correo así es horrible, es cierto :P. Pero Mail nos da otras opciones. Para eso están los caracteres de control, que siguen la forma ~X, donde X indica la acción.

Si tecleamos ~m seguido de enter, el programa citará el mensaje que estamos respondiendo. Pero con la forma de edición de Mail esto tiene poca utilidad... así que entramos en modo 'visual' con ~v, que en mi caso es... ¡vim! :D (esto es configurable).

La edición visual es tan confortable como la de cualquier editor de texto que indiquemos en la configuración. Editamos el texto y terminamos guardando los cambios (:wq en mi editor).

Los caracteres de control permiten hacer gran cantidad de cosas. Por ejemplo, para añadir la firma hago: ~r/home/reidrac/.signature.

Hemos terminado: Ctrl + D. Ahora nos pregunta un CC: (o no, esto es configurable), no indicamos ninguno y el correo es enviado.

El resultado recibido es el siguiente:

From - Sat Oct 30 14:06:07 2004
X-UIDL: 1033539917.23230
X-Mozilla-Status: 0011
X-Mozilla-Status2: 00000000
Return-Path: <reidrac@dominiofalso.com>
Received: from blah blah (blah blah [217.76.146.*])
  by blah blah (Cyrus tururu) with LMTP; Sat, 30 Oct 2004 14:06:07 +0200
X-Sieve: CMU Sieve 2.2
Received: from homeworld ([84.120.176.**])
	by blah blah (Postfix) with ESMTP id DA50E3BC79E
	for <jjm@dominiofalso.com>; Sat, 30 Oct 2004 14:06:06 +0200 (CEST)
Received: from reidrac by homeworld with local (Exim 3.35 #1 (Debian))
	id 1CNrzd-0000Tn-00
	for <jjm@dominiofalso.com>; Sat, 30 Oct 2004 14:06:01 +0200
To: jjm@dominiofalso.com
Subject: Re: Probando
In-Reply-To: <41837E09.7090703@dominiofalso.com>
Message-Id: <E1CNrzd-0000Tn-00@homeworld>
From: jjm <reidrac@dominiofalso.com>
Date: Sat, 30 Oct 2004 14:06:01 +0200

> Esto es una prueba...

Ha llegado bien...

---
Desarrollo y Sistemas: http://usebox.net/
      Página personal: http://usebox.net/jjm/

Para que todo esto funcione Mail tiene que estar correctamente configurado, y eso suele pasar por tener nuestro MTA (Mail Transfer Agent) en condiciones (en mi caso... Exim, que viene con Debian de casa).

Pues esto es todo. Mail tiene muchas más posibilidades, pero ya dejo al lector la curiosidad de consultar la página del manual por su cuenta :).

Anotación por Juan J. Martínez.

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.