Guía de inicio rápido con Mutt
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 |
$ 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
auth login
user su_nombre_de_usuario
password su_clave
|
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.
El contenido de este documento está registrado bajo los términos de
la licencia
Creative Commons - Reconocimiento / Compartir Igual
|