Gentoo Logo

Guía de inicio rápido con Mutt

Contenido:

1.  Introducción al correo electrónico

Si no es un fan de los clientes de correo electrónico con adornadas interfaces de usuario gráficas, o si le gustaría experimentar con otros clientes de correo antes de decidir cuál es el que más le acomoda, a continuación hay una manera fácil de comenzar usando estas poderosas herramientas de línea de comandos:

fetchmail, procmail, mutt y smtp

Estos programas no sólo son poderosos y altamente adaptables sino también pequeños y eficientes. Una vez que los tenga funcionando con este sistema de correo electrónico se sorprenderá de lo que puede hacer.

Debido a que esta es una guía de inicio rápido, no abordaremos los Agentes de Transferencia de Correo (MTA por Mail Transfer Agent) tales como: sendmail, postfix o exim. Esto significa que no hay que hacer una compleja configuración del MTA. También elimina hacer uso del puerto 25 para el servicio de correo.

Podemos hacer esto ya que con fetchmail es posible forzar que el correo que rescata se vaya directamente a un Agente de Reparto de Correo (MDA por Mail Delivery Agent) en vez de redireccionarlo al puerto 25. Así no necesita usar un complejo MTA para el reparto del correo plano saliente.

Éstos son los programas que necesitará para tener funcionando su correo electrónico.

Listado de Código 1.1: Obtener los programas necesarios

# emerge fetchmail nbsmtp procmail mutt

Luego, hay que seguir sólo cuatro pasos para configurar algunos archivos y estará corriendo un nuevo sistema de correo electrónico.

Importante: Luego de cada paso puede realizar una prueba para estar seguro de que la configuración está correcta. De esta forma tendrá funcionando un completo sistema de correo electrónico una vez que finalice los pasos de la guía.

2.  Fetchmail

Fetchmail trae el correo electrónico desde los servidores remotos y lo redirecciona a sus máquinas locales que actúan como sistemas de distribución. Para usarlo necesita configurar un archivo denominado .fetchmailrc en su directorio de usuario tal como el siguiente ejemplo:

Listado de Código 2.1: Archivo .fetchmailrc de muestra

poll mail.su_isp.net  protocol pop3 user "su_nombre" password "su_clave"

Una vez que haya creado el archivo .fetchmailrc, tiene que cambiar los permisos del archivo usando el comando chmod. El archivo debe ser posible de leer sólo por el dueño del archivo. Ajuste los permisos con el siguiente comando:

Listado de Código 2.2: Cambiar los permisos

$ chmod 600 .fetchmailrc

Para verlo en acción, use el modo verboso (-v). Para traer todos los mensajes use la opción -a. Debe usar la opción -m para decirle a fetchmail que envíe el correo a procmail.

Aviso: Mientras realiza pruebas, es buena idea decirle a fetchmail que mantenga el correo en el servidor remoto (opción -k) en caso de que algo malo suceda y necesite traerlo de nuevo.

¡Ejecútelo ahora para ver a fetchmail en acción!

Listado de Código 2.3: Prueba de fetchmail #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Una vez que tenga el sistema de correo funcionando, puede configurar lo anterior usando cron o colocarlo en un monitor como gkrellm. Fetchmail también puede ser ejecutado en modo demonio al cual debe especificarle un intervalo de tiempo en segundos para sondear si hay nuevo correo electrónico por traer.

3.  Procmail

Procmail es el procesador que filtra el correo que le es redireccionado mediante fetchmail. También actúa como MDA para repartir el correo a sus buzones donde mutt (su cliente de correo electrónico) pueda leerlo.

Para usar procmail necesita crear un archivo .procmailrc en su directorio de usuario. Para nuestros propósitos de inicio rápido, usaremos un archivo .procmailrc muy simple que filtrará el correo de tres listas de correos de gentoo en estos buzones: gentoo-dev, gentoo-user y gentoo-announce

Nota: Las reglas de filtro de procmail se llaman recetas y se han incluido algunas de ellas para filtrar algo de spam.

Listado de Código 3.1: Archivo .procmailrc de muestra

MAILDIR=$HOME/MuttMail                ##Asegúrese que exista el directorio
LOGFILE=$HOME/.procmaillog
LOGABSTRACT=no
#VERBOSE=on...sólo se usa para depurar
VERBOSE=off
FORMAIL=/usr/bin/formail
NL="
"
##Las líneas de recetas comienzan con :0
##No coloque comentarios en las líneas de recetas
##Puede desactivar una receta con la condición falsa: !
##Las líneas de condiciones comienzan con * y puede usar expresiones regulares
##Las condiciones se evalúan con un Y lógico y todo lo que hay después de un asterico se va directo a egrep
##A una condición le sigue una línea de acción, en este caso, el nombre del buzón

#Capturar los duplicados usando formail
:0 Whc: .msgid.lock
| $FORMAIL -D 16384 .msgid.cache

:0 a
$MAILDIR/duplicates

#Direcciones de correo electrónico permitidas para recibir correo desde ellas
:0
* ^From:.*(craig\@hotmail|renee\@local.com)
$MAILDIR/friends

#Filtrar algo de spam
:0
* ^Subject:.*(credit|cash|money|debt|sex|sale|loan)
$MAILDIR/spam

#No permitir mensajes en HTML
:0
* ^Content-Type:.*html
$MAILDIR/junk

#Dirigir las listas de correo a sus buzones
:0
* ^List-Id:.*gentoo-user
gentoo-user

:0
* ^List-Id:.*gentoo-dev
gentoo-dev

:0
* ^List-Id:.*gentoo-announce
gentoo-announce

#Capturar algún otro correo de Gentoo
:0
* ^From:.*gentoo.org
gentoo

#Capturar correos desde Freshmeat
:0
* ^From:.*@freshmeat\.net
freshmeat

######################################################
# Última receta: El correo que no cumple las recetas #
# anteriores se va al buzón por defecto              #
######################################################
:0
* .*
default

# Fin del archivo

Nota: Sólo se requiere crear el directorio de correo $HOME/MuttMail ya que Procmail creará en este directorio el resto de los archivos de buzones a medida que se necesiten usando los nombres indicados en las líneas de acción. En http://www.procmail.org/ puede encontrar enlaces útiles al respecto.

Ahora puede probar el .procmailrc ejecutando nuevamente el comando fetchmail tal como lo hizo en el primer paso. Recuerde que la opción -k mantiene todo el correo en el servidor remoto por si necesita ejecutar la prueba otra vez.

Listado de Código 3.2: Prueba de procmail #1

$ fetchmail -akv -m "/usr/bin/procmail -d %T"

Ahora que están funcionando fetchmail y procmail, vaya a $HOME/MuttMail y lea sus mensajes con less o su administrador de archivos.

4.  El cliente de correo electrónico Mutt

Mutt se usa para leer y escribir correo electrónico. Es poderoso y altamente adaptable, pero también pequeño y eficiente.

Mutt permite la lectura y escritura de cuatro formatos de buzones distintos: mbox, MMDF, MH y Maildir.El tipo del buzón es detectado automáticamente. En nuestro caso estamos usando el formato mbox, buzón en el que se guardan todos los mensajes en un archivo simple.

Mutt también tiene la capacidad de trabajar con carpetas ubicadas en un servidor IMAP remoto. Vea el soporte de IMAP en la sección 4.11 del manual de Mutt y el sitio Web de Mutt http://www.mutt.org/

Cuando instaló mutt mediante emerge en el primer paso de esta guía, se instaló un archivo de configuración en /etc/mutt/Muttrc. También necesita crear un archivo .muttrc en su directorio de usuario.

Listado de Código 4.1: Archivo .muttrc de ejemplo

(Asegúrese de leer el excelente manual de Mutt en /usr/share/doc/mutt*)
(Cualquier ajuste realizado aquí prevalece sobre los del sistema en /etc/mutt/Muttrc)

$ cp /etc/mutt/Muttrc ~/.muttrc
$ nano -w .muttrc
set pager_context=1
set pager_index_lines=6                 #Muestra un mini-índice en el paginador
set menu_scroll
set pgp_verify_sig=no                   #No muestra PGP en el paginador
set status_on_top                       #Coloca la línea de estado en la parte superior
set sort=threads                        #Ordena según hilos de mensajes en el índice

set status_format=" %r %b %f %n      Del %d      Msgs %m %l %> (%P)"
set pager_format="%-10.10i %[!%a %b %d %R]"
set date_format="!%H:%M %a %d %b     "
set index_format="%4C %Z %[%b%d] %-15.15F %s"
set folder_format="%2C %t %8s %d %N %f"

#set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f yourname@isp.net"

#set from="direccion de correo por defecto"         #Configurar su dirección en el FROM
#set realname="mi_nombre"

set record="$HOME/MuttMail/sent"        #El correo enviado se guarda aquí
set delete=yes                          #Borrar mensajes sin pedir confirmación
set include=yes                         #Citar el mensaje original al responder
set fast_reply=yes                      #Responder sin pedir confirmación
set beep=no                             #Desactivar el sonido
set markers=no                          #No colocar el símbolo + en las líneas con retorno automático
set confirmappend=no                    #Guardar a =keep sin pedir confirmación
set to_chars=" +TCF"                    #No usar la tecla L para mail_list

set folder = $HOME/MuttMail
mailboxes =gentoo-user
mailboxes =gentoo-dev
mailboxes =gentoo-announce
mailboxes =gentoo
mailboxes =freshmeat
mailboxes =duplicates
mailboxes =default
mailboxes =friends
mailboxes =junk
mailboxes =spam
mailboxes =keep

save-hook .* =keep                      #El buzón por defecto para guardar el correo es =keep
subscribe gentoo-user gentoo-dev        #Se está subscrito a estas listas de correo

bind pager h display-toggle-weed        #Ver los encabezados con la tecla h

# Simula el antiguo menú de URL
macro index \cb |urlview\n 'call urlview to extract URLs out of a message'
macro pager \cb |urlview\n 'call urlview to extract URLs out of a message'

#Ejecuta fetchmail al presionar la tecla G
macro index G "!fetchmail -a -m 'procmail -d %T'\r"
macro pager G "!fetchmail -a -m 'procmail -d %T'\r"

#Macros para editar .muttrc y aplicar los cambios sin necesidad de reiniciar el programa
macro generic ,sm ":source $HOME/.muttrc\r"
macro generic \cj "!rxvt -bg wheat -e joe $HOME/.muttrc\r"

#Lista de campos de encabezado por defecto que se omiten al mostrar el correo
#Se ignoran todos y luego aceptamos sólo los que queremos ver y en qué orden
ignore *
unignore  Date To From: Subject X-Mailer Organization User-Agent
hdr_order Date From To Subject X-Mailer User-Agent Organization

##Su Mutt puede tener colores
##A continuación hay cuatro niveles para el texto citado
##Dichos niveles prevalecen por sobre los ajuste de sistema en /etc/mutt/Muttrc

#color quoted green  default
color  quoted1 magenta blue
#color quoted2 yellow default
#color quoted3 red default
#color signature cyan cyan


#La siguiente configuración de color fue copiada desde /etc/mutt/Muttrc.color
#Coméntela si desea usar los colores por defecto configurados en /etc/mutt/Muttrc
# Je vois la vie en rose (o sea, veo la vida en rosa) :-)
color   hdrdefault      brightcyan      blue
color   header          brightwhite     blue "^from:"
color   header          brightwhite     blue   "^subject:"

color   quoted          brightgreen     blue
color   signature       brightwhite     blue

color   indicator       blue            green

color   error           red             black
mono    error           bold
color   status          black cyan
mono    status          bold
color   tree            yellow          blue

color   tilde           brightmagenta   blue
color   body            brightwhite     blue  "[-a-z_0-9.]+@[-a-z_0-9.]+"
mono    body            bold                  "[-a-z_0-9.]+@[-a-z_0-9.]+"
color   body            brightyellow    black   "^Good signature"
mono    body            bold                    "^Good signature"
color   body            brightwhite     red     "^Bad signature from.*"
mono    body            bold                    "^Bad signature from.*"
color   normal          white           blue
color   message         green           black
color   attachment      brightgreen     blue

# Fin del archivo ... pero este puede crecer y crecer ... :)

Para su información, esto es sólo un ejemplo de .muttrc. Hay muchas más opciones que puede configurar, por ejemplo ajustes de GPG. Déle una mirada a http://www.dotfiles.com/index.php?app_id=27 para más ejemplos y ayuda al respecto.

Ahora está listo para probar su .muttrc.

Listado de Código 4.2: Probar su archivo .muttrc

$ mutt -y

Este debería abrir Mutt con un menú que muestra los buzones de correo de Mutt que se crearon en el paso 2 cuando ejecutó el comando fetchmail.

Escriba el símbolo de interrogación (?) para obtener ayuda al navegar por los buzones de Mutt.

5.  SMTP

El último paso es configurar nbsmtp (conocido como 'No-Brainer SMTP') el cual es usado para enviar correo a su servidor SMTP. Esta configuración es la más fácil de todas y sólo requiere agregar una línea en su archivo .muttrc.

-d dominio: Es el nombre dominio que usará nbsmtp para decir a cuál pertenece. Esto será en la mayor parte de los casos el mismo nombre de dominio de su dirección de correo electrónico.

-f remitente@host.tld: Esta es la dirección de correo que usará nbsmtp para decir de dónde viene el mensaje. Note que esto puede ser diferente de línea "From:" en su MUA.

-h host: Este es el servidor smtp al cual le enviará los correos

Listado de Código 5.1: Agregar soporte de SMTP a mutt

$ nano -w .muttrc
set sendmail="/usr/bin/nbsmtp -d isp.net -h smtp.isp.net -f su_nombre@isp.net"

Ahora está listo para enviar un mensaje. Desde el paginador de Mutt o desde el índice presione la tecla m para escribir un mensaje de prueba y enviarlo a su dirección de correo. Mutt usará el valor de la variable de entorno EDITOR o VISUAL como editor para escribir correos a menos que haya configurado la opción editor= en el archivo .muttrc. Cuando haya terminado de escribir su mensaje, presione la tecla y para enviarlo. Si no hay mensajes de error, podrá observar 'sending mail' seguido de 'Mail sent'.

Recuerde que en .muttrc configuró dónde se guardará el correo enviado con set record="$HOME/MuttMail/sent"

Ahora para completar la prueba, ejecute fetchmail nuevamente para obtener todo su correo y verificar que haya recibido el mensaje enviado a su dirección de correo electrónico. Una vez que encuentre su mensaje de prueba, presione la tecla h para activar la visualización de todos los encabezados y observe la ruta completa de transferencia del correo.

Nota: Hay un programa más que probablemente quiera agregar denominado urlview. Este extrae las URLs en los textos de mensajes y las envía a su navegador.

Listado de Código 5.2: Obtener urlview

# emerge urlview

Luego cree el archivo ~/.urlview copiando el archivo de configuración desde /usr/share/doc/urlview*/ y configure el comando para ejecutar su navegador.

Ahora tiene un sistema de correo poderoso y altamente adaptable. Así que lea todos los manuales y documentación y encuentre los diversos archivos de configuración de usuario disponibles en la Web usando 'google' procmailrc y muttrc.

6.  SMTP Autenticado

Usar nbSMTP

Si necesita darle a su servidor SMTP un nombre de usuario y una clave, puede editar el comando set sendmail en su archivo .muttrc para incluir -U <nombre de usuario> -P <clave> tal como se muestra a continuación:

Listado de Código 6.1: Configurar el nombre de usuario y clave para SMTP

set sendmail="/usr/bin/nbsmtp -U nombre_de_usuario -P clave -d isp.net -h smtp.isp.net -f sunombre@isp.net"

Si no quiere que esta información quede en su archivo .muttrc, también puede crear un archivo .nbsmtprc en el cual se incluye dicha información:

Listado de Código 6.2: Ejemplo de ~/.nbsmtprc

auth_user = nombre_de_usuario
auth_pass = clave

Alternativa: usar msmtp

msmtp es una alternativa simple a nbsmtp y que ofrece características similares.

Listado de Código 6.3: Instalar msmtp

# emerge msmtp

Ahora ingrese como usuario normal y configure mstmp creando un archivo ~/.msmtprc que contenga la información de su servidor SMTP. ¡Recuerde ajustar los permisos a un valor seguro!

Listado de Código 6.4: Configurar msmtp

$ nano -w .msmtprc
account default
host smtp.su_proveedor.net
from su_nombre_de_usuario@proveedor1.net
#Vea la página del manual para más opciones de autentificación
auth login
user su_nombre_de_usuario
password su_clave
#Si su servidor SMTP ofrece la posibilidad de cifrado TLS, descomente la siguiente línea
#tls

Ahora configure los permisos del archivo a un valor seguro:

Listado de Código 6.5: Ajustar los permisos del archivo de configuración

$ chmod 600 .msmtprc

Finalmente, edite o agregue la siguiente línea a su .muttrc

Listado de Código 6.6: Usar msmtp con Mutt

$ nano -w .muttrc
set sendmail="/usr/bin/msmtp"

Ejecute mutt y ¡envíese un correo a si mismo para ver si funcionó! Vea la página del manual de mstmp para más opciones y otros ejemplos.



Imprimir

Actualizado 17 de septiembre, 2006

Sumario: Esta guía le muestra cómo empezar a usar las poderosas herramientas de línea de comandos para correo electrónico: fetchmail, procmail, mutt, nbsmtp, msmtp.

Mike Polniak
Autor

Ken Nowack
Editor

John Hitchings
Colaborador

José Alberto Suárez López
Editor Es

John Christian Stoddart
Editor Es

José Luis Rivero
Editor Es

Andrés Pereira
Traductor

Donate to support our development efforts.

Support OSL

Support OSL

Gentoo Centric Hosting: vr.org

VR Hosted

Tek Alchemy

Tek Alchemy

SevenL.net

SevenL.net

Global Netoptex Inc.

Global Netoptex Inc.

Linux World Expo

Linux World Expo

Copyright 2001-2008 Gentoo Foundation, Inc. Questions, Comments? Contact us.