(Creación) |
m (añado categoría) |
||
| (No se muestran 2 ediciones intermedias realizadas por un usuario) | |||
| Línea 1: | Línea 1: | ||
=Descripción= | =Descripción= | ||
Los actuales clientes de correo incluyen entre sus funcionalidades el filtrado de los mensajes atendiendo a diversos parámetros configurables por quien los usa. De este modo se pueden clasificar y priorizar mejor la correspondencia. | Los actuales clientes de correo incluyen entre sus funcionalidades el filtrado de los mensajes atendiendo a diversos parámetros configurables por quien los usa. De este modo se pueden clasificar y priorizar mejor la correspondencia. | ||
| − | Pero en situaciones de gran movilidad es | + | Pero en situaciones de gran movilidad es difícil mantener coordinados dichos filtros entre diferentes equipos (trabajo, casa, cibercafes, ...). |
| − | En esta y otras situaciones podemos usar una herramienta llamada [[IMAPFilter]]. | + | En esta y otras situaciones podemos usar una herramienta llamada [[imapfilter | IMAPFilter]]. |
| + | |||
=Requisitos= | =Requisitos= | ||
| − | + | Únicamente es necesario disponer del programa IMAPfilter (no necesariamente en el servidor de correo IMAP). | |
Este tutorial se ha probado contra un servidor IMAP configurado siguiendo el tutorial [http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu9.04 Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 9.04)]. Es posible que con otros tipos de servidores sean necesarios algunos reajustes. | Este tutorial se ha probado contra un servidor IMAP configurado siguiendo el tutorial [http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu9.04 Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 9.04)]. Es posible que con otros tipos de servidores sean necesarios algunos reajustes. | ||
=Proceso= | =Proceso= | ||
| Línea 12: | Línea 13: | ||
O instalar desde el gestor de paquetes [[Synaptic]] dicha aplicación. | O instalar desde el gestor de paquetes [[Synaptic]] dicha aplicación. | ||
==Configuración== | ==Configuración== | ||
| − | La configuración solo precisa de la creación de un archivo que | + | La configuración solo precisa de la creación de un archivo que incluirá las opciones generales, las opciones de cada cuenta de correo que queramos gestionar y los filtros a aplicar en la cuenta o cuentas. |
El programa buscara este fichero llamado ''config.lua'' dentro de la carpeta oculta ''.imapfilter'', que a su vez se encontrara en la carpeta del usuario o usuaria en cuestión. | El programa buscara este fichero llamado ''config.lua'' dentro de la carpeta oculta ''.imapfilter'', que a su vez se encontrara en la carpeta del usuario o usuaria en cuestión. | ||
De modo que podemos empezar creando dicha carpeta para nuestro usuario. | De modo que podemos empezar creando dicha carpeta para nuestro usuario. | ||
| Línea 31: | Línea 32: | ||
#''options.create'' que al escribir un mensaje en una carpeta no existe la cree. | #''options.create'' que al escribir un mensaje en una carpeta no existe la cree. | ||
#''options.close'' que se cierre la carpeta en uso al terminar las operaciones, lo que implica que se eliminen los mensajes marcados como eliminados en ese momento. | #''options.close'' que se cierre la carpeta en uso al terminar las operaciones, lo que implica que se eliminen los mensajes marcados como eliminados en ese momento. | ||
| − | #''options.subscribe'' implica que las carpetas creadas | + | #''options.subscribe'' implica que las carpetas creadas automáticamente sean suscritas (visibles). |
| − | En la documentación se | + | En la documentación se explican el resto de opciones que enumero: ''create,close,crammd5,expunge,info,namespace,starttls,subscribe,timeout'' |
===Configuración de las cuentas=== | ===Configuración de las cuentas=== | ||
| − | Para configurar cada cuenta de correo usaremos la | + | Para configurar cada cuenta de correo usaremos la función ''IMAP()'' del siguiente modo: |
cuenta1 = IMAP { | cuenta1 = IMAP { | ||
server = 'imap.servidor.com', | server = 'imap.servidor.com', | ||
| Línea 46: | Línea 47: | ||
#La linea ''username'' indica nuestro nombre de usuario en el servidor IMAP. | #La linea ''username'' indica nuestro nombre de usuario en el servidor IMAP. | ||
#La linea ''password'' indica la clave de nuestra cuenta en el servidor IMAP. | #La linea ''password'' indica la clave de nuestra cuenta en el servidor IMAP. | ||
| − | #La linea ''ssl'' indica que se usara una | + | #La linea ''ssl'' indica que se usara una conexión segura (IMAPS) y el protocolo a usar ''ssl2'' , ''ssl3'' , ''tls1''. |
===Configuración de los filtros=== | ===Configuración de los filtros=== | ||
| − | Y aqui entramos en lo | + | Y aqui entramos en lo único un poco mas complicado. Como decía antes, este archivo de configuración se escribe siguiendo las normas del [[lenguaje de programación]] [[LUA]] y por tanto es preciso tener algunos conocimientos básicos de programación para perfeccionar este archivo, pero para ayudar existen los múltiples ejemplos que se proveen en la documentación. Así que nada mejor que mostrar algunos y sus resultados. |
====Buscando mensajes==== | ====Buscando mensajes==== | ||
*Obtener mensajes (despues veremos que podemos hacer con estos mensajes) no vistos y con un remitente especifico | *Obtener mensajes (despues veremos que podemos hacer con estos mensajes) no vistos y con un remitente especifico | ||
| Línea 56: | Línea 57: | ||
#Que no hayan sido vistos por el usuario (''is_unseen''). | #Que no hayan sido vistos por el usuario (''is_unseen''). | ||
#Que el remitente contenga el texto ''@spam'' (''contain_from''). | #Que el remitente contenga el texto ''@spam'' (''contain_from''). | ||
| − | El | + | El símbolo ''*'' indica el operador Y (AND) que le dice a IMAPFilter que deben cumplirse las dos condiciones. |
*Obtener mensajes que provengan de un determinado remitente y que su asunto no sea uno determinado: | *Obtener mensajes que provengan de un determinado remitente y que su asunto no sea uno determinado: | ||
''de_pepe_no_urgentes = cuenta1.INBOX:contain_from('pepe@servidor.com') -'' | ''de_pepe_no_urgentes = cuenta1.INBOX:contain_from('pepe@servidor.com') -'' | ||
''cuenta1.INBOX:contain_subject('urgente')'' | ''cuenta1.INBOX:contain_subject('urgente')'' | ||
| − | En este caso el | + | En este caso el símbolo ''-'' indica el operador NO (NOT) que le dice al programa que se debe cumplir la primera y que no se debe cumplir la segunda condición. |
====Haciendo cosas con los mensajes==== | ====Haciendo cosas con los mensajes==== | ||
Ahora deberemos indicar al programa que hacer con estos mensajes que ha localizado para nosotros y de nuevo un par de ejemplos comunes. | Ahora deberemos indicar al programa que hacer con estos mensajes que ha localizado para nosotros y de nuevo un par de ejemplos comunes. | ||
| Línea 77: | Línea 78: | ||
Una vez tengamos abierto el archivo de configuración de las tareas programadas agregaremos la siguiente linea: | Una vez tengamos abierto el archivo de configuración de las tareas programadas agregaremos la siguiente linea: | ||
''0,10,20,30,40,50 * * * * /usr/bin/imapfilter'' | ''0,10,20,30,40,50 * * * * /usr/bin/imapfilter'' | ||
| − | La opción ''-d'' es mejor eliminarla para no recibir mas información pero si tienes dudas, usala | + | La opción ''-d'' es mejor eliminarla para no recibir mas información pero si tienes dudas, usala aquí también para poder controlar que hizo el programa con tus mensajes y asi depurar tus filtros. |
=A tener en cuenta= | =A tener en cuenta= | ||
| − | *Los textos con | + | *Los textos con símbolos especiales como tildes, eñes, etc. Pueden aparecer en nuestro programa de correo de una manera y el servidor entenderlos de otra. Aconsejo que mires el código fuente del mensaje primero para asegurarte de como aparece el texto allí o usar las palabras o trozos de palabras que no contengan dichos símbolos. Por ejemplo: El mensaje pone ''Información sobre las españolas'', pues escribe el filtro: |
''infoespa = cuenta1.INBOX:contain_subject('Informaci') +'' | ''infoespa = cuenta1.INBOX:contain_subject('Informaci') +'' | ||
''cuenta1.INBOX:contain_subject('sobre las espa'')'' | ''cuenta1.INBOX:contain_subject('sobre las espa'')'' | ||
=Referencias= | =Referencias= | ||
* He basado este tutorial en la [http://imapfilter.hellug.gr/#documentation documentación] de IMAPFIlter. | * He basado este tutorial en la [http://imapfilter.hellug.gr/#documentation documentación] de IMAPFIlter. | ||
| + | |||
| + | [[Categoría:Servidores]] | ||
Contenido |
Los actuales clientes de correo incluyen entre sus funcionalidades el filtrado de los mensajes atendiendo a diversos parámetros configurables por quien los usa. De este modo se pueden clasificar y priorizar mejor la correspondencia. Pero en situaciones de gran movilidad es difícil mantener coordinados dichos filtros entre diferentes equipos (trabajo, casa, cibercafes, ...). En esta y otras situaciones podemos usar una herramienta llamada IMAPFilter.
Únicamente es necesario disponer del programa IMAPfilter (no necesariamente en el servidor de correo IMAP). Este tutorial se ha probado contra un servidor IMAP configurado siguiendo el tutorial Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 9.04). Es posible que con otros tipos de servidores sean necesarios algunos reajustes.
En los repositorios de Jaunty se encuentra la aplicación IMAPFilter, de modo que deberemos teclear en una terminal:
sudo aptitude install imapfilter
O instalar desde el gestor de paquetes Synaptic dicha aplicación.
La configuración solo precisa de la creación de un archivo que incluirá las opciones generales, las opciones de cada cuenta de correo que queramos gestionar y los filtros a aplicar en la cuenta o cuentas. El programa buscara este fichero llamado config.lua dentro de la carpeta oculta .imapfilter, que a su vez se encontrara en la carpeta del usuario o usuaria en cuestión. De modo que podemos empezar creando dicha carpeta para nuestro usuario.
mkdir ~/.imapfilter
Y continuaremos editando dicho fichero con nuestro editor de texto preferido y cambiando sus permisos para que nadie pueda leer las contraseñas de las cuentas de correo:
nano .imapfilter/config.lua && chmod go-rwx .imapfilter/config.lua
gedit .imapfilter/config.lua && chmod go-rwx .imapfilter/config.lua
Lo único un poco complicado es la sintaxis de este fichero, y en realidad tampoco lo es tanto. Esta basada en el lenguaje de programación LUA y esta muy bien descrita (en ingles) en la documentación del programa.
Las opciones generales van precedidas del texto options. y para empezar mostrare un ejemplo:
options.create = true options.close = true options.subscribe = true
Esto indica al programa:
En la documentación se explican el resto de opciones que enumero: create,close,crammd5,expunge,info,namespace,starttls,subscribe,timeout
Para configurar cada cuenta de correo usaremos la función IMAP() del siguiente modo:
cuenta1 = IMAP {
server = 'imap.servidor.com',
port = 993,
username = 'yo',
password = 'secreto',
ssl = 'ssl3'
}
Y aqui entramos en lo único un poco mas complicado. Como decía antes, este archivo de configuración se escribe siguiendo las normas del lenguaje de programación LUA y por tanto es preciso tener algunos conocimientos básicos de programación para perfeccionar este archivo, pero para ayudar existen los múltiples ejemplos que se proveen en la documentación. Así que nada mejor que mostrar algunos y sus resultados.
no_vistos_de_spam = cuenta1.INBOX:is_unseen() *
cuenta1.INBOX:contain_from('@spam.com')
Aqui podemos ver que pedimos una lista de mensajes de la bandeja de entrada (INBOX) que coincidan con dos condiciones.
El símbolo * indica el operador Y (AND) que le dice a IMAPFilter que deben cumplirse las dos condiciones.
de_pepe_no_urgentes = cuenta1.INBOX:contain_from('pepe@servidor.com') -
cuenta1.INBOX:contain_subject('urgente')
En este caso el símbolo - indica el operador NO (NOT) que le dice al programa que se debe cumplir la primera y que no se debe cumplir la segunda condición.
Ahora deberemos indicar al programa que hacer con estos mensajes que ha localizado para nosotros y de nuevo un par de ejemplos comunes.
cuenta1.INBOX:delete_messages(no_vistos_de_spam)
Aqui le decimos que elimine mensajes de la cuenta cuenta1 y el listado de mensajes exacto es el que indicamos previamente con el nombre no_vistos_de_spam.
cuenta1.INBOX:move_messages(cuenta1['De Pepe/No urgente'],de_pepe_no_urgentes)
En este ejemplo moveremos los mensajes que indicamos con el listado de_pepe_no_urgentes a la carpeta No urgente que esta dentro de la carpeta De Pepe.
Ahora es necesario que se ejecute el programa IMAPFilter para que apliquen nuestros filtros. Lo haremos con la opcion debug (-d)) para obtener información extra de lo que sucede y hace el programa.
imapfilter -d
Esto aplicara por primera vez los filtros, pero para que se ejecuten repetidamente deberemos crear una tarea programada que lo realice por nosotros. Dicha tarea programada la debera realizar el mismo usuario del sistema que es propietario del archivo de configuración. Así que en una terminal pondremos el siguiente comando:
crontab -e
Si es la primera vez que usamos crontab nos preguntara por el editor de textos que queremos usar. En mi caso me decante por la opcion 3, nano. Una vez tengamos abierto el archivo de configuración de las tareas programadas agregaremos la siguiente linea:
0,10,20,30,40,50 * * * * /usr/bin/imapfilter
La opción -d es mejor eliminarla para no recibir mas información pero si tienes dudas, usala aquí también para poder controlar que hizo el programa con tus mensajes y asi depurar tus filtros.
infoespa = cuenta1.INBOX:contain_subject('Informaci') +
cuenta1.INBOX:contain_subject('sobre las espa)