Mutt: cliente de correo de consola

Mutt es un cliente de correo que funciona en consola y ofrece un amplio abanico de posibilidades aunque puede que inicialmente nos resulte un poco complicado acostumbrarnos a él. La potencia de mutt está en su amplia configurabilidad, nos va a permitir leer el correo de nuestro sistema (/var/spool/mail/usuario) o incluso de otros sistemas remotos usando IMAP/POP3.

Lo ideal es tener montado un sistema de descarga/envio de correo combinando getmail, procmail para el filtrado y exim para el envio. Opcionalmente si se quiere acceder al correo desde PCs conectados en red se puede tener servicio de IMAP con dovecot. De esta forma bajariamos el correo con getmail y se guardaría en nuestros buzones del sistema y podriamos consultarlo con mutt desde una consola (por ejemplo conectandonos remotamente por SSH). Aunque este sea el ideal, mutt también ofrece la posibilidad de acceder al correo utilizando directamente IMAP o POP3 como ya he comentado.

Suele ser útil tener un cliente de consola configurado para poder acceder a nuestro correo cuando hay una urgencia o en remoto utilizando el servicio SSH. También podriamos decantarnos por el cliente de correo pine, es más intuitivo que mutt pero menos potente (además de no ser 100% libre).

Cuando arrancamos mutt, lo primero que hará será cargar los archivos de configuración. Primero cargará el del sistema “/etc/Muttrc” y a continuación el del usuario que lo este ejecutando “~/.mutt/muttrc”, este último será el que modifiquemos y añadiremos las siguientes opciones que podremos adaptar a nuestras necesidades (las he comentado todas):

# Reset de variables y hooks
reset all
unhook *

######## Envio y recepción de correo

# Nombre del dominio por defecto
set hostname = marblestation.com

# Mi dirección from por defecto
my_hdr From: Sergio Blanco Cuaresma <mail@direccion.com>

# Comprobación de los emails activada, cada 60 segundos
set check_new
set mail_check=60
set beep_new

# Donde se encuentran los buzones (aparte del principal)
set folder=~/mail

# Mailboxes (listar pulsando 'y')
mailboxes = ~/mail/gpl
mailboxes = ~/mail/gplurv
mailboxes = ~/mail/gplurv-socis
mailboxes = ~/mail/ubuntu-es
mailboxes = ~/mail/mono-hispano
mailboxes = ~/mail/spam
mailboxes = ~/mail/spam-unsure

# Los mensajes pospuestos se guardan en...
set postponed="=postponed"

# Guardar una copia de los mensajes enviados en...
set copy= yes
set record="=sent-mail"

# Enviar correo con el comando
set sendmail = "/usr/sbin/sendmail"

# Definimos el lugar POP3 de donde queremos descargar los emails.
# Para realizar la descarga pulsamos 'G'
#set pop_host = "pop3.telefonica.net"
#set pop_user = "usuario"
#set pop_pass = "secret"
#set pop_delete = no

# También podemos acceder a nuestra cuenta POP al estilo IMAP (pulsar 'y' para
# ver listado de mailboxes)
#mailboxes = "pop://usuario@pop3.telefonica.net"

# Definimos un servidor IMAP para acceder a su buzón principal. (pulsar 'y' para
# ver listado de mailboxes)
#mailboxes = "imaps://usuario@servidor.com/inbox"
#mailboxes = "imaps://usuario@servidor.com/gplurv"
#mailboxes = "imaps://usuario@servidor.com/ubuntu-es"
#mailboxes = "imaps://usuario@servidor.com/mono-hispano"
#set imap_pass = "secret"
# Indicamos un lugar donde guardar los certificados.
set certificate_file=~/.mutt/certificates

########


######## Entorno

# No cerrar la vista de threads que contienen mails no leidos
unset collapse_unread

# No saltar al siguiente email cuando llegamos al final del actual
set pager_stop

# Mostrar el listado de mails en la parte superior cuando estamos visualizando
# el contenido de un mail concreto. Usar solo 6 lineas.
set pager_index_lines=6

# No poner un '+' en las lineas cortadas (wrapped), asi podremos copiar correctamente
# URLs por ejemplo.
set markers=no
 
# Avanzar por el texto del mail actual con up/down y pasar al siguiente o
# anterior mail con left/right
bind	pager	<up>	previous-line
bind	pager	<down>	next-line
bind	pager	<left>	previous-entry
bind	pager	<right>	next-entry

# Macros: usar 'y' para ir al listado de buzones desde el indice o el browser
macro index "y" "c?t"
macro browser "y" "tt"

# Marcar todos los mensajes como leidos pulsando M
macro index M "T.*\n;WN" "Mark all messages as read"

# Mostrar solo algunas cabeceras
ignore *
unignore From To Cc Subject Date Reply-To Organization X-Mailer User-Agent

# Orden de las cabeceras
hdr_order From: Date: To: Cc: Subject:

# Borrar automáticamente los mails
set delete=no

# No mover los mensajes leidos al salir
set move=no

# Citar los mensajes en las respuestas
set include=yes

# No marcar los mensajes nuevos no leidos en otros accesos como viejos
set nomark_old

# Si un mail tiene la cabecera Reply-To, utilizarla si vamos a responder. No
# nos preguntará.
set reply_to=yes

# Ordenar primero por threads y después por fecha de llegada
set sort=threads
set sort_aux=date-received

# La vista de threads no se debe construir estrictamente por las cabeceras
# de los mails
set nostrict_threads

# Añadir "--" a mi firma e incluirla (la tenemos definida en ~/.firma)
set sig_dashes
set signature="~/.firma"

# Permitir escribir caracteres de 8 bits i usar charset iso
set allow_8bit
set charset=iso-8859-1

# Formatos
set attribution    = "On %d, %n (%a) wrote:"
set forward_format = "Fwd: [%a: %s]"
#set quote_regexp   = "^ *[a-zA-Z]*[]>|}()%:=-][]>|}():=-]*"  # More Sven
set status_format  = "[%r] %h %f (%s) [%M/%m] [N=%n,*=%t,post=%p,new=%b]" 
#set index_format   = "%4C %Z %{%b %d} %-15.15F (%4l) %s"
set date_format="%d/%m/%y %H:%M %Z"

# Buzones correspondientes a listas de correo, si pulsamos L sobre un mail
# cogerá como destinatario la lista y no el origen del mensaje.
lists ubuntu-es gplurv mono-hispano

# Configuración especifica de un buzón que no esta definido como lista (identico)
folder-hook gpl my_hdr From: GPL Tarragona <tralara@tralari.net>


# Configuración especifica de las listas
folder-hook ubuntu-es my_hdr From: Sergio Blanco Cuaresma <direccion@listas.com>
folder-hook gplurv my_hdr From: Sergio Blanco Cuaresma <direccion@listas.com>
folder-hook mono-hispano my_hdr From: Sergio Blanco Cuaresma <direccion@listas.com>

# Fichero donde se guardará la libreta de direcciones
set alias_file=~/.mutt/aliases

# Preguntar antes de imprimir
set print=ask-yes

# Preguntar antes de borrar
set delete=ask-yes

# Definiciones para el uso de GnuPG
source ~/.mutt/gpg


######## Configuración de GnuPG

# Desencriptar al hacer un forward
set forward_decrypt

# Mostrar solo la llave principal y no las subclaves
set pgp_ignore_subkeys

# Firmar automaticamente los mails salientes
set pgp_autosign

# No encriptar automáticamente
unset pgp_autoencrypt

# Si un mail estaba encriptado, la respuesta será encriptada también
# Si un mail estaba firmado, la respuesta será firmada también
set pgp_replyencrypt
set pgp_replysign
set pgp_replysignencrypted

# Comprobar firmas
set pgp_verify_sig=yes

# No olvidar el passphrase durante 7200 segundos (2 horas)
set pgp_timeout=7200

# No mostrar ids de clave de 64 bits
#unset pgp_long_ids

# Mostrar las llaves no usables en el menu
set pgp_show_unusable

# Ordenar claves por confianza
set pgp_sort_keys = trust

# Firmar con la clave...
set pgp_sign_as=0x0ED2CF9D

## Fin GnuPG

En nuestro directorio ~/.mutt/ añadiremos el anterio fichero “muttrc” y:

mkdir -p ~/.mutt/
cd ~/.mutt/
touch certificates
touch aliases
cp /usr/share/doc/mutt/examples/gpg.rc.gz .
gzip -d gpg.rc.gz
mv gpg.rc gpg

Ahora ya podremos ejecutar mutt para acceder a nuestro buzón principal (mutt -y para acceder al listado de buzones). Una vez dentro podremos pulsar:

‘enter’ para visualizar un mail.
‘r’ para responder.
‘m’ para escribir un nuevo mail.
‘y’ (alternativa: ‘c’ y ‘tab’) para acceder al listado de buzones.
‘tab’ para ir al siguiente mensaje nuevo.
‘q’ para salir de la ventana actual, en caso de estar en un buzón sale del programa.

Con esto ya podemos empezar a experimentar 🙂

3 thoughts on “Mutt: cliente de correo de consola

Leave a Reply

Your email address will not be published. Required fields are marked *