Mutt (Español)
Mutt es un cliente correo renombrado por sus poderosas características. Mutt, a pesar de más de una decada desde su lanzamiento, sigue siendo el cliente de correo favorito de un gran número de usuarios expertos. Desafortunadamente, una instalación por defecto de Mutt está plagada por combinación de teclas complicadas y una enorme cantidad de documentación. Esta guía ayudará al usuario promedio a instalar y correr Mutt, y comenzar a personalizarlo como sea necesario.
Descripción
Mutt se enfoca en ser un Mail User Agent, y fue originalmente escrito sólo para ver correo. Debido a esto, la recuperación de correo, características de envío y filtrado implementadas posteriormente son básicas comparadas con otras aplicaciones. La mayoría de las instalaciones de Mutt dependen de programas externos para estas tareas.
De todos modos, el paquete mutt de Arch ha sido compilado con soporte para IMAP, POP3 y SMTP, y por tanto no requiere programas externos para tratar con el correo.
Este articulo cubrirá el envío/recepción con el IMAP nativo, y una configuración dependiente de OfflineIMAP o getmail (POP3) para recuperar correo, procmail para filtrarlo en el caso de POP3, y msmtp para enviarlo.
Instalación
Instale Mutt:
# pacman -S mutt
Opcionalmente instale aplicaciones asistentes para una configuración con IMAP:
# pacman -S offlineimap msmtp
O si está usando POP3:
# pacman -S getmail procmail
Notas
- Si sólo necesita los métodos de atenticación LOGIN y PLAIN, estos se satisfacen con la dependencia libsasl.
- Si quiere (o necesita) usar CRAM-MD5, GSSAPI o DIGEST-MD5, instale también el paquete cyrus-sasl-gssapi y listo.
- Si está usando Gmail como su servidor de smtp, puede que necesite instalar el paquete cyrus-sasl.
Configuración
Esta sección cubre la configuración de IMAP, #POP3, #MailDir y #SMTP.
Note que Mutt reconecerá dos ubicaciones para su archivo de configuración: ~/.muttrc
y ~/.mutt/muttrc
. Ambas ubicaciones funcionan.
IMAP
Configuraciones nativa y externa
Usando el soporte nativo de IMAP
La versión pacman de Mutt está compilada con soporte de IMAP. Por lo menos mecesita tener 4 líneas en su archivo muttrc para poder acceder a su correo.
spoolfile
En vez de un spool local de correo, especifique el servidor imap
.
set spoolfile=imap[s]://imap.servidor.dominio[:puerto]/carpeta
Use imaps
para cifrado o imap
en caso contrario. El número de puerto es sólo necesario cuando el puerto de su servidor no es estándar. Termine con el nombre de la carpeta donde llega el correo nuevo, que es casi siempre INBOX. Por ejemplo:
set spoolfile=imaps://imap.gmail.com/INBOX
imap_user
set imap_user=NOMBRE_USUARIO
Continuando con el ejemplo anterior, recuerde que Gmail requiere su dirección de correo completa (esto no es estándar):
set imap_user=your.username@gmail.com
folder
En vez de un directorio local que contiene todo su correo (y directorios), use su servidor (y la carpeta más alta en la jerarquía, de ser necesario).
set folder=imap[s]://imap.server.domain[:port]/[folder/]
No necesita usar una carpeta, pero puede ser conveniente si tiene todas sus demás carpetas dentro de su INBOX, por ejemplo. Lo que configure aquí como su carpeta puede ser accedido después en Mutt con solo un signo de igual (=). Ejemplo:
set folder=imaps://imap.gmail.com/
mailboxes
Las carpetas imap que deban ser revisadas regularmente en caso de haber correos nuevos deben estar listadas aquí (todas en la misma línea).
mailboxes <lista de carpetas>
Ahora puede usar '=' o '+' como substituto de la ruta completa de la carpeta
que fue configurada arriba. Por ejemplo:
mailboxes =INBOX =familia mailboxes imaps://imap.gmail.com/INBOX imaps://imap.gmail.com/familia
Éstas dos versiones son equivalentes, pero la primera es mucho más conveniente. También, Mutt está configurado por defecto para incluir una macro atada a la tecla 'y' que le permitirá cambiarse a cualquiera de las carpetas listadas en mailboxes.
Resumen
Usando estas opciones, podrá ejecutar mutt, introducir su contraseña IMAP, y comenzar a leer su correo. Aquí hay un fragmento de muttrc (para Gmail) con algunas otras líneas que puede considerar agregar para un mejor soporte de IMAP.
set folder = imaps://imap.gmail.com/ set spoolfile = imaps://imap.gmail.com/INBOX set imap_user = su.usuario@gmail.com set imap_pass = su.contrasena.imap mailboxes = +INBOX # almacene las cabeceras de mensajes localmente para acelerar las cosas set header_cache = ~/.mutt/hcache # especifique dondo guardar y/o buscar los mensajes pospuestos set postponed = +[Gmail]/Drafts # permitir a mutt abrir nuevas conexiones imap automaticamente set imap_passive = no # mantener viva la conexion imap preguntando intermitentemente (tiempo en segundos) set imap_keepalive = 300 # que tan frequetemente se revisara si hay correo nuevo (tiempo en segundos) set mail_check = 120
Soporte externo de IMAP
Aunque la funcionalidad de IMAP está integrada en Mutt, éste no descarga el correo para uso fuera de línea. El artículo OfflineIMAP describe como descargar su correo a una carpeta local para que pueda ser procesada por Mutt.
Considere el uso de aplicaciones como spamassassin o imapfilterAUR para ordenar el correo.
POP3
Recuperando y ordenando el correo con aplicaciones externas
Recuperando correo
Cree el directorio ~/.getmail/
. Abra el archivo ~/.getmail/getmailrc
en su editor de texto favorito.
Aquí hay un archivo getmailrc
ejemplo usado con una cuenta de gmail
[retriever] type = SimplePOP3SSLRetriever server = pop.gmail.com username = nombre_usuario@gmail.com port = 995 password = contrasena [destination] type = Maildir path = ~/mail/
Puede modificar esto de acuerdo a la especificación de su servicio POP3.
En esta guía el correo se almacenará en el formato maildir
format. Los dos formatos principales de buzón de correo son mbox
y maildir
. La diferencia principal entre éstos es que mbox
es un archivo, con todos sus correos y sus cabeceras almacenados en él, mientras que maildir
es un árbol de directorios. Cada correo es su propio archivo, lo que usualmente acelera las cosas.
Una maildir
es sólo una carpeta con las carpetas cur
, new
y tmp
en ella.
mkdir -p ~/mail/{cur,new,tmp}
Ahora ejecute getmail. Si funciona bien, puede crear un cronjob para getmail que se ejecute cada n horas/minutos. Escriba crontab -e
para editar cronjobs, e introduzca lo siguiente:
*/30 * * * * /usr/bin/getmail
Ésto ejecutará getmail
cada 30 minutos.
Ordenando correo
Procmail es una herramienta de ordenamiento extremadamente poderosa. Para los propósitos de este wiki se harán algunos orednamientos primitivos para comenzar.
Debe editar su getmailrc para pasar el correo recuperado a procmail:
[destination] type = MDA_external path = /usr/bin/procmail
Ahora, abra .procmailrc
en su editor favorito. Lo siguiente ordenará todo el correo proveniente de la lista de correos canguros-felices, y todo el correo proveniente de su amigo pepe en sus propios maildirs.
MAILDIR=$HOME/mail DEFAULT=$MAILDIR/inbox/ LOGFILE=$MAILDIR/log :0: * ^To: canguros-felices@proveedor_amable.com canguros-felices/ :0: * ^From: pepe@ejemplo.net pepe/
Después de guardar su .procmailrc
, ejecute getmail y vea si procmail tiene éxito ordenando su correo en los directorios apropiados.
Nota: Un error fácil de cometer con .procmailrc es la configuración de permisos. procmail requiere que el permiso sea 644 y dará mensajes de error sin sentido si no lo hace.
MailDir
MailDir es un formato genérico y estandarizado. Casi todo MUA es capaz de manejar MailDirs y el soporte de Mutt es excelente. Sólo se requiere realizar algunos pasos simples para hacer que Mutt los use. Abra su muttrc con su editor favorito y agregue las siguientes líneas:
set mbox_type=Maildir set folder=$HOME/Mail set spoolfile=+/INBOX set header_cache=~/.hcache
Esta es la configuración mínima que le permite acceder su MailDir y revisar nuevos correos locales en INBOX. Esta configuración tambien almacena las cabeceras de los correos para acelerar los listados de directorio. Puede que no esté activado en su compilación (pero es seguro que está activado en el paquete de Arch). Note que esto no afecta de ninguna manera a OfflineIMAP. Éste siempre sincroniza todos los directorios en un servidor. spoolfile
le dice a Mutt qué directorios locales revisar por nuevos correos. Puede querer agregar más Spoolfiles (por ejemplo los directorios de listas de correos) y quizás otras cosas. Pero esto es tema para el manual de Mutt y está fuera del alcance de este documento.
SMTP
Sin importar si usa POP o IMAP para recibir correo probablemente enviará correo usando SMTP.
Usando el soporte nativo de SMTP
La version pacman de Mutt está compilada con soporte de SMTP. Consulte el manual en línea muttrc(5) para mayor información.
Por ejemplo:
set my_pass='contrasena' set my_user=nombre_usuario@gmail.com set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com set ssl_force_tls = yes
Soporte externo de SMTP
Se puede utilizar un agente SMTP externo como msmtp o sSMTP. Esta sección cubre exclusivamente la configuración de Mutt para msmtp.
Edite el archivo de configuración de Mutt o creelo si no está presente:
muttrc
set realname='Canguro Molesto' set sendmail="/usr/bin/msmtp" set edit_headers=yes set folder=~/mail set mbox=+mbox set spoolfile=+inbox set record=+sent set postponed=+drafts set mbox_type=Maildir mailboxes +inbox +pepe +canguros-felices
Ahora, ejecute mutt
:
$ mutt
Debería poder ver todo el correo en ~/mail/inbox
. Pulse m
para redactar un mensaje; se utilizará el editor definido en la variable de entorno EDITOR
. Si la variable no está definida, escriba en la consola $ export EDITOR=binario_del_editor
Para propósitos de prueba, remita el correo a usted mismo. Después de escribir el correo, guarde y salga del editor. Regresará a Mutt, que ahora mostrará información acerca de su correo. Presione y
para enviarlo.
Personalizando
Imprimiendo
Puede instalar muttprintAUR del AUR para una calidad de impresión superior. Inserte en su archivo muttrc:
set print_command="/usr/bin/muttprint %s -p {PrinterName}"
Bloque de firma
Cree un archivo .signature en su directorio home. Su firma será anexada al al final de su correo.
Firma aleatoria
Puede utilizar fortune para agregar una firma aleatoria a mutt.
$ pacman -S fortune-mod
Cree un archivo fortune y agregue la siguiente línea a su .muttrc:
set signature="fortune ruta_al_archivo_fortune"
Visualizando URLs y abriendo Firefox
Debe comenzar creando un directorio .mutt en $HOME si no lo ha hecho. Ahí, cree un archivo llamado macros. Ingrese lo siguiente:
macro pager \cb <pipe-entry>'urlview'<enter> 'Seguir enlaces con urlview'
Instale urlviewAUR desde el AUR.
Cree un archivo .urlview en $HOME e ingrese lo siguiente:
REGEXP (((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):] COMMAND firefox %s
Cuando lea un correo, al presionar ctrl+b listará todos los urls del correo. Navegue hacia arriba o abajo con la teclas direccionales y presione enter en el url deseado. Se ejecutará firefox e irá al sitio seleccionado.
- Nota - Si tiene problemas con urlview debido a la codificación url de Mutt puede probar extract_url.pl
Mutt y Vim
- Para limitar el ancho del texto a 72 carácteres, edite su archivo .vimrc y agregué:
au BufRead /tmp/mutt-* set tw=72
- Otra opción es usar el complemento de tipo de archivo de correo de Vim para activar otras opciones centradas en correo además de la opción de 72 carácteres de ancho. Edite
~/.vim/filetype.vim
, creándolo de ser necesario y agregue:
augroup filetypedetect " Mail autocmd BufRead,BufNewFile *mutt-* setfiletype mail augroup END
- Para configurar un directorio tmp diferente, ej. ~/.tmp, agregue una linea a su muttrc como sigue:
set tmpdir="~/.tmp"
- Para re-formatear un texto modificado vea la ayuda contextual de Vim:
:h 10.7
Visualizando HTML dentro de una configuración Vim/Mutt
Esta configuración pasa el cuerpo html a lynx y luego a Vim, manteniendo la visualización de correo uniforme y discreta.
Instale lynx:
pacman -S lynx
Si ~/.mutt/mailcap no existe va a necesitar crearlo y guardar lo siguiente en el:
text/html; lynx -dump %s; nametemplate=%s.html; copiousoutput
Edite muttrc y agregue lo siguiente:
set mailcap_path = ~/.mutt/mailcap
Para abrir los mensajes html automáticamente en lynx, agregue esta línea adicional al muttrc:
auto_view text/html
Lo bonito de esto es, en vez de ver un cuerpo html como código fuente o ser abierto por un programa separado, en este caso lynx, se analiza como html para Vim, cualquier enlace url en el correo se puede mostrar con Ctrl+b.
Mutt y GNU nano
nano es otro agradable editor de consola para usar con Mutt.
Para limitar el ancho del texto a 72 carácteres, edite su archivo .nanorc y agregue:
set fill 72
Además, en el archivo muttrc, puede especificar la línea para comenzar a editar de manera que salte la cabecera del correo:
set editor="nano +7"
Sugerencias y Trucos
Use Mutt para enviar correo desde la línea de comandos
Las páginas man mostrarán todas las instrucciones disponibles y cómo usarlas, pero aquí hay un par de ejemplos. Puede usar Mutt para enviar alertas, mensajes de registro (log) o alguna otra información de sistema, bien cuando inicie una sesión, a través del .bash_profile, o bien como una tarea programada usando cron.
Enviar un mensaje:
mutt -s "Asunto" alguien@algunservidor.com < /var/log/algunlog
Enviar un mensaje con adjunto:
mutt -s "Asunto" -a algunarchivo alguien@algunservidor.com < /tmp/alguntexto.txt
Como mostrar un correo durante la composición de otro
Una queja común con Mutt es que al componer un nuevo correo (o respuesta), no se puede abrir otro correo (para revisar con otro correspondiente, por ejemplo) sin cerrar el correo actual (postponer). Lo siguiente propone una solución:
Primero, ejecute Mutt como de costumbre. Luego, ejecute otra ventana de terminal. Ahora ejecute un nuevo Mutt con
mutt -R
Esto ejecuta Mutt en modo sólo lectura, y puede revisar otros correos a su conveniencia. Se sugiere que siempre ejecute el segundo Mutt enmodo sólo lectura, debido a que fácilmente surgiran conflictos de otra manera.
Ahora, esta solución requiere un poco deescritura, así que es deseable automatizarlo. Lo siguiente funciona con Awesome, en otros MV's o AE's es posible que existan soluciones similares: busque en la web como agregar una combinación de teclas, y haga que la tecla deseada ejecute:
$TERM -e mutt -R
Donde $TERM es su terminal.
Para Awesome: edite su rc.lua, y agregue lo siguiente en una de las primeras líneas, después de terminal = "su_terminal" etc.
mailview = terminal .. " -e mutt -R"
Esto autmáticamente usa su terminal preferido, ".." es concatenación en Lua. Note el espacio antes de -e.
Luego agregue lo siguiente dentro de --{{{ Key bindings
awful.key({ modkey, }, "m", function() awful.util.spawn(mailview) end),
Omita la coma final si esta esla última línea. Puede, por supuesto, usar otra tecla distinata a "m". Ahora guarde y salga, y revise su sintáxis con:
awesome -k
Si está bien, ¡reinicie awesome y pruebe!
Ahora, un ejemplo de uso: Ejecute mutt como de costumbre. Cree un nuevo correo, y luego presione "Mod4"+"m". Ésto abre su buzón en un nuevo terminal, y puede explorar y leer otros correos. Ahora, un bono elegante: Salga de este Mutt sólo lectura con "q", y ¡la ventana terminal que éste creo desaparece!