Category: How-To

Como hacer algunas cosillas

  • Configuración de mutt

    Cuando entre a la U el 2003, en el LabComp nos esteñaron a ocupar pine para leer nuestros correos electrónicos.
    Pasado el tiempo, este cambio su licencia y ya no existia en la distribución de la época. En su reemplazo llegó mutt.

    En un comienzo me negaba a cambiarme a mutt, pero era un cambio inevitable. Luego de unos meses usandolo a regañadientes, decidí configurarlo a mi pinta.
    Resuelta que copié el archivo /etc/Muttrc en ~/.muttrc en donde le aplique a mi configuración personal.

    De este archivo muchas cosas las dejé por defecto, de las cosas que modifique, acá les dejo un ejemplo.

    # Si mutt no puede determinar el dominio, mejor lo seteamos
    set hostname=”alumnos.inf.utfsm.cl”# Cuando respondo un correo, este es el formato de la linea de atribucion.
    set attribution=”El %d, %n escribio:”

    # Le digo a mutt, cual es mi editor por defecto.
    # Si no esta seteada, mutt tomará el valor de la variable $EDITOR.

    set editor=”/usr/bin/vim”

    # Especifico donde se encuentran mis casillas de mail.
    # Al escribir ‘=’ o ‘+’ en mutt, el signo será reemplazado por esta variable.

    set folder=”~/mail”

    # Cuando una casilla se abre para leer, y algún mensaje no se lee, este se marca como ‘Old’.
    # Con esta opción mutt no hace distinción entre Nuevos Sin Leer y Antiguos Sin Leer.

    set mark_old=no

    # Le digo a mutt cual es mi nombre real.
    set realname=”Renato Covarrubias Romero”

    # Quiero guardar mis mensajes enviados. Aqui les epecifico donde.
    set record=”~/mail/sent-mail”

    # Aqui le digo a mutt, que me ordene los mensajes según el hilo de los mismos.
    set sort=threads

    # Acá le digo que casillas de correo revisar automáticamente.
    # Aqui ocupo la magia del echo para agregar todas las casillas dentro de ciertos directorios.

    mailboxes `echo $MAIL ~/mbox ~/mail/labcomp/* ~/mail/listas/* ~/mail/USM`

    Estos pequeños cambios, hacen que mutt sea mucho más óptimo para mi.

    Muchos otros parámetros los pueden ver en el mismo archivo /etc/Muttrc en donde hay comentarios con una explicación de otros parámetros y sus posibles valores.

  • La magia de procmail

    Recibes hartos correos diariamente, ¿Y estas cansado de que todos te llegen a tu inbox?
    procmail es la solución a tu problema!

    Dentro de todas las gracias que tiene procmail, la más utilizada es sin duda el filtro de correos. La idea de hoy es explicarles como dejar funcionando procmail para que les filtre sus correos según algun patrón.

    Lo primero es entender como funciona esto.

    1. El servidor Unix recibe un correo electrónico destinado a tu casilla de correo.
    2. sendmail le pasa al procmail del sistema el correo electrónico. Este procmail busca el archivo ~/.procmailrc en tu cuenta.
      • Si lo encuentra sigue las reglas que ahí esten definidas.
      • De lo contrario el nuevo correo es dejado en tu inbox.

    Tenemos entonces que definir el archivo ~/.procmailrc. En mi caso, yo tengo un directorio .procmail en donde guardaré los archivos con la reglas, y mis correos se almacenan en el directorio mail

    # Archivo .procmailrc, configuracion para Procmail# Setear como ‘yes’ para realizar debug de las reglas
    VERBOSE=no# Quitar ‘#’ durante debugging; setear como no si se quiere logging minimo
    LOGABSTRACT=all

    # Variable que guarda la ubicacion de nuestra carpeta de correos
    MAILDIR=$HOME/mail

    # Directorio donde se almacenan los archivos con las reglas para procmail
    PMDIR=$HOME/.procmail

    # Poner ‘#’ antes de LOGFILE si no se quiere logging (no se recomienda)
    LOGFILE=$PMDIR/log

    # Nombres de los archivos con reglas para procmail
    INCLUDERC=$PMDIR/listas.rc
    INCLUDERC=$PMDIR/mios.rc

    Ahora nos quedan crear los archivos con las reglas.

    Primero, filtraremos la lista linux, la lista de php y un mensaje con un Asunto determinado.

    :0:
    * ^List-Id.*linux.listas.inf.utfsm.cl
    linux:0:
    * ^List-Id.*php.listas.inf.utfsm.cl
    ! otra_direccion@dominio:0:
    * ^Subject.*(Prueba|prueba)
    /dev/null

    Procmail, filtra los correos electrónicos según expresiones regulares. Cuando esta expresion regular concuerda, la acción definida se ejecuta.

    Por el caracter básico de esto, no explicaré en mayor profundida la primera linea de las sentencias.
    La linea de en medio, indica el patrón que estamos buscando para ejecutar alguna acción con dichos correos. Pueden existir más de una linea en estos patrones.
    La última linea nos indica las acciones a seguir.

    Cuando procmail lee el archivo lo hace de manera lineal. Si un correo concuerda con un regla deja de revisar las otras reglas.

    Las reglas en el archivo hacen lo siguiente:

    • Cada correo recibido desde la lista linux, será guardado en el archivo linux en el directorio mail.
    • Si el correo no calzó con la regla anterior y se recibe desde la lista de php será reenviado a la dirección otra_direccion@dominio
    • Si el correo no calzó con las reglas anteriores y en su subject se encuentra la palabra Prueba o prueba, este será enviado a /dev/null (será borrado).

    Ojalá que esto le sirva a alguien, y como siempre pueden encontrar mucha más ayuda en Google!.