Administrando con fetchmail, procmail y mutt una cuenta de correo pop

La forma en que usamos  nuestra cuenta de correo electronico, puede ser un desperdicio a causa del correo no deseado (spam) y publicitarios que no necesitamos en el día a día, como tambien tener que acceder por el propio navegador y agotar mas tiempo insertando las credenciales y el modo de visualizacion con apis innecesarias. Aún así existen opciones mucho mas eficientes y poderosas debido  a las caracteristicas que poseen los clientes de correo en modo texto en el mundo del software libre y open source.

En mi caso, mi cliente de email preferido es mutt (anteriormente utilizaba pine / alpine). Aunque se diferencia en mi configuración, utilizando mutt junto a otros 2 motores para eficientizar la lista de correos en bandeja de entrada y filtrar el spam o email publicitario o de un remitente en especifico.

La combinación es mutt, fetchmail, y procmail junto con  cuenta de pop gmail.

Instalamos los paquetes requeridos via pkg:

# pkg install  procmail fetchmail mutt

o  a través de ports:

cd /usr/ports && portinstall -c procmail fetchmail mutt

Creamos el archivo .forward en nuestro directorio home:

echo «|/usr/local/bin/procmail» > .forward

Ahora creamos la configuración de fetchmail, en un archivo llamado .fetchmailrc:

set daemon 3600
set logfile /home/user/.fetchmail.log
set no bouncemail
poll pop.gmail.com proto POP3 auth password no dns user «user@gmail.com» pass «password» is user keep ssl

mda «/usr/local/bin/procmail -m /home/user/.procmailrc»


Ahora creamos el archivo .procmailrc con el siguiente contenido
asumiendo haber creado el directorio Maildir en nuestra carpeta personal.

SHELL=/bin/bash
PATH=/usr/sbin:/usr/bin
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$HOME/.procmail.log
LOG=»»

VERBOSE=on

# Descarta todos los emails desde MONTEVERDE JARABACOA ya que no hay motivos para obtener de este remitente
:0:
Mail/
*^From:.*(mailer\@publimas\.net)
/dev/null


Esto combinará cualquier correo con direccion etiquetada en la  expresión regular. Tambien se puede incluir mas de un lugar para encontrar la cadena que se está buscando en una sola  colocado entre  parentesis y separandolos con una tubería, como en este ejemplo:

*^(To|Cc|Bcc):.*(bob\@company\.com|dave\@company\.com)

Se puede buscar para filtrar tambien en los campos From, To, Cc, Bcc, Subject, o en cualquier otra area del contenido del correo en donde se desee. Tambien es posible definir multiples condiciones al mismo tiempo:

*^From:.*(bob\@company\.com)
*^Subject:.*(joke)

Este ejemplo combinara cualquier correo desde bob@company.com con  «broma» en el campo Subject.

Finalmente, configuramos mutt. Esta es una configuración preliminar en .muttrc .


set mbox_type=Maildir

set spoolfile=»~/Maildir/»
set folder=»~/Maildir/»
set mask=»!^\\.[^.]»
set record=»+.Sent»
set postponed=»+.Drafts»

mailboxes ! + `\
for file in ~/Maildir/.*; do \
box=$(basename «$file»); \
if [ ! «$box» = ‘.’ -a ! «$box» = ‘..’ -a ! «$box» = ‘.customflags’ \
-a ! «$box» = ‘.subscriptions’ ]; then \
echo -n «\»+$box\» «; \
fi; \
done`

macro index c «?» «open a different folder»
macro pager c «?» «open a different folder»
 

set sort = ‘threads’
set sort_aux = ‘reverse-last-date-received’
set auto_tag = yes
ignore «Authentication-Results:»
ignore «DomainKey-Signature:»
ignore «DKIM-Signature:»
hdr_order Date From To Cc
alternative_order text/plain text/html *
auto_view text/html

# Editor
set editor = «vim»

# Colours
color index red black ~N
color index red black ~O

 Con toda esta configuracion establecida, ahora ejecutamos el comando fetchmail:

$ fetchmail -vk

Esto puede tomar mas o menos tiempo debido al correo que se tenga almacenado en la bandeja de entrada. Abrimos el cliente mutt 

$ mutt

Bibliografía:

http://www.ioncannon.net/system-administration/97/