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. |
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.
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.
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.
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 |
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.
El contenido de este documento está registrado bajo los términos de la licencia Creative Commons - Reconocimiento / Compartir Igual