Francisco J. 曹 Tsao Santín : MuttHowto

Principal :: Índice de Páginas :: Acceso

Hacia la pureza: Usando el cliente de correo mutt


Hasta hace poco, venía utilizando webmail, al principio, y Mozilla Thunderbird, después, para gestionar mi correo personal. Son buenas soluciones, pero me apetecía un poco más de control. Poder disponer de distintas réplicas de lotes de correos, navegar por ellos pero también leerlos y editarlos con lo que me de la gana. Además, las situaciones día a día pueden ser de trabajo offline, en remoto contra la máquina que tengo en casa, o incluso online pero sin tener acceso a esa máquina.

La idea, por tanto, es mantener una copia centralizada de todo el correo en mi casa, pero accediendo a el o manteniendo copias accesibles desde otras máquinas (mi portátil incluído). Para completar el escenario, el correo me lo descargo por pop3 desde el hosting donde estás leyendo este documento, y tengo una segunda cuenta en Gmail, también para descargar por pop3. Los correos los envío através del servidor autenticado del servicio de hosting.

Por todo ello, el cliente escogido es mutt. Trabaja con mboxes (formato legible con cualquier editor de texto; en el fondo mozilla también lo hace, pero hay que bucear más por el directorio de configuración), y puede ser usado en modo consola, ideal para trabajar en remoto (y con máquinas no demasiado potentes, además). Es además altamente configurable. Para descargar el correo utilizamos fetchmail y procmail para organizarlo. Para enviarlo, en principio valoré el usar postfix, pero para lo que necesito (smtp autenticado) msmtp es pequeño y perfectamente válido. Como complemento, urlview y lynx permiten desde el mismo terminal ver información web (enlaces, páginas) que puedan incluir los correos.

Configurando mutt

Para configurar mutt, nada más fácil (y más complejo) que coger el fichero de ejemplo de la documentación, e ir retocando cada opción. El tiempo que lleva hacerlo bien motiva para sacar buenas copias de seguridad del archivo. También existen repositorios de archivos de ejemplo para diferentes situaciones, lo que nos puede facilitar mucho las cosas. así quedó mi .muttrc:

.muttrc
#set pop_user="prueba@dominio1.org"
ignore *
unignore From: return-path to cc subject date
hdr_order from return-path to cc subject date x-mailer
set from="prueba@dominio1.org"
set envelope_from=yes
set use_from="yes"
#Elegimos el editor de texto favorito. jmacs es la versión de joe con combinaciones de teclas de emacs.
set editor=jmacs
#Si descomentamos la siguiente opción, se visualizan los hilos de conversación
#set sort=threads
#Se puede establecer una forma complementaria de organizar los correos
#set sort_aux=date-received
#Pero finalmente me decanto por tener la conversación plana por fecha de recepción
set sort=date-received
set assumed_charset="iso-8859-1"
set confirmcreate=yes
set connect_timeout=30
set content_type="text/plain"
set copy=yes
#set header=yes
set locale="es_ES"
set pager_context=1
set pager_index_lines=6
set header_cache="/home/fran/Mail/cache"
#set header_cache="16384"
set status_format=" %r %b %f %n      Del %d      Msgs %m %l %> (%P)"
# Configuración del comando que ejecuta fetchmail. Con -k mantengo los correos en el servidor
macro index G "!fetchmail -k -m 'procmail -d %T'\r"
macro pager G "!fetchmail -k -m 'procmail -d %T'\r"
# Configuración de origen de la cuenta de correo que queremos usar (en conjunción con msmtp)
macro generic "<esc>1" ":set from=prueba@dominio1.org"
macro generic "<esc>2" ":set from=prueba@dominio2.com"
# Con Ctrl-b puedo ver con el browser por defecto (lynx, por ejemplo) las urls en los correos (con urlview)
macro index \cb |urlview\n
macro pager \cb |urlview\n
#mailboxes varios...
set folder = /home/fran/Mail
mailboxes /home/fran/Mail/mbox
mailboxes /home/fran/Mail/crypto
mailboxes /home/fran/Mail/forensics
mailboxes /home/fran/Mail/gpul
mailboxes /home/fran/Mail/sent
mailboxes /home/fran/Mail/spam
set mark_old=no
set mbox_type=mbox
set menu_scroll=yes
set pop_checkinterval=60
set pop_delete=ask-yes
set postponed="~/Mail/postponed"
set print_command="lp"
set quit=ask-yes
set record="~/Mail/sent"
# La firma de mis correos
set signature="~/Mail/.signature"
set send_charset="iso-8859-1:utf-8"
set digest_collapse=no
# El programa através del cual se envía el correo
set sendmail="/usr/bin/msmtp"
# Mis contactos
alias prueba Direccion de prueba <prueba@prueba.es>


Configuración de fetchmail

No me gusta demasiado tener en claro la password para bajar el correo del servidor de POP3, pero me resulta cómodo. Se puede hacer interactivo desde mutt para que un prompt pida la password y evitar el problema.

.fetchmailrc
# Put here each user config
poll www.dominio1.org with proto POP3
       user 'prueba@dominio1.org' there with password 'enclaro' is 'fran' here
options fetchall ssl

Configuración de procmail

Con procmail configuramos a donde va cada correo. Consultar la documentación para ver las muchas posibilidades que da este programa.


.procmailrc
# Please check if all the paths in PATH are reachable, remove the ones that
# are not.
#                                                                             
PATH=/usr/bin:/bin:/usr/local/bin:.
MAILDIR=$HOME/Mail      # You'd better make sure it exists
DEFAULT=$MAILDIR/mbox
LOGFILE=$MAILDIR/from
SENDMAIL=msmtp

:0
* ^To:.*gpul-list*
$MAILDIR/gpul

:0
* ^To:.*crypto*
$MAILDIR/crypto

:0
* ^To:.*forensics*
$MAILDIR/forensics
# En el servidor de correo tengo funcionando spamasassin, que le añade la palabra SPAM al subject
:0
* ^Subject: *SPAM*
$MAILDIR/spam
# El resto de correo que no ha sido procesado por las anteriores instrucciones, al mbox genérico
:0
* .*
$MAILDIR/mbox



Configuración de msmtp

El correo lo envío através del mismo dominio de mi hosting en LMI (www.enelparaiso.org), configuro la cuenta para que use autenticación y tls, y que no proteste por el certificado (otra de las peculiaridades del servicio que uso es que el nombre de usuario es la dirección completa de correo,prueba@dominio1.org y no prueba a secas); la segunda cuenta sólo cambia el from. Podría parecer que basta con cambiarlo editando la cabecera desde mutt, pero así lo que conseguríamos es que aparecieran dos from en la cabecera del correo: la que queremos (prueba@dominio2) y la que se le añade en el proceso smtp (prueba@dominio1), lo que haría sospechoso el correo.


.msmtprc
account default
domain dominio1.org
host www.dominio1.org
port 465
connect_timeout 30
auth login
user prueba@dominio1.org
password passwordenclaro
from prueba@dominio1.org
tls on
tls_certcheck off
tls_starttls off
syslog on
account dominio2:default
from prueba@dominio2.org


Algunos comandos de uso habitual


En el índice de un buzón:

Escribiendo un correo:

Leyendo un correo:

Los comandos referentes a entrada de direcciones, nombres de fichero o cambio de buzones permiten autocompletado con tabulador, lo que es comodísimo :-)

Documentación

Para poner en marcha el sistema, me he basado en la Guía de inicio rápido con Mutt del proyecto Gentoo, y en las páginas man de cada uno de los programas que comento.
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3
Page was generated in 0.0616 seconds