Sieve, l’esclau eficient
novembre 25, 2008
El primer cop que vaig sentir el nom "dovecot" fou en la darrera reconstrucció del servidor de GràciaNet. En T. fou l'encarregat de montar tot el sistema de correu nou, migrant el contingut de l'antic i amb la sana intenció de montar-ne un de més ràpid i eficient. Em va explicar, després de montar-lo, que el sistema treballava de forma esquemàtica amb aquest circuit: el correu entrava via postfix que validava l'adreça amb una consulta al mysql, l'entregava després a l'amavisd que mirava si era spam o virus i el retornant-lo al postfix amb el resultat, que finalment l'entregava al dovecot (si calia) per a què el distribuís als usuaris.
Jo sempre havia treballat amb procmail, i entre això i que en T. sempre monta els servidors molt a la seva manera vaig tardar en fotre-li mà a l'assumpte. Però com tot, tot té un dia i aquest va arribar fa uns mesos quan cansat de rebre tant d'spam (marcat, això si) a la bústia vaig buscar la forma de separar-lo automàticament. El fet que utilitzem IMAP ens facilitava la feina perquè podiem crear carpetes de Junk per a cada usuari i deixar-li allí el correu que teòricament era brossa.
Així fou com em vaig adonar de l'existència del sieve. Es tracta d'un petit plugin per a dovecot que em permet crear regles directament al servidor i executar certes accions depenent d'unes variables. I així vaig poder indicar-li que tots els correus que passessin pel servidor i que fossin marcats com a SPAM s'emmagatzemessin a la carpeta Junk de cada usuari, apartant així els correus molestos de la bústia d'entrada. Sembla mentida com una cosa tan banal pot fer que un webmail sigui usable o no! 🙂
Igualment, vaig aprofitar per manegar un script que cada nit consulta les carpetes Junk dels usuaris i li diu al SpamAssassin que prengui nota que tot allò és spam, i posteriorment n'elimin els que tenen més de 30 dies. Això ens permet tenir l'espai més o menys controlat i entrenar l'spamassassin amb els spam que no ha detectat però en canvi si que ho ha fet l'usuari (o el programa client que utilitza).
Mesos després em va passar un petit accident casolà: a l'ordinador gran de casa se li va espatllar una peça que encara no he repostat i fa unes setmanes que em moc amb el petit portàtil. Així va ser com em vaig començar a enyorar els filtres que tenia al ThunderBird i em passava hores (exagerat!!!) desgranant els correus personals dels de llistes,facebooks,errors,webs,etc. Realment, un conyàs.
Així que vaig tornar al Sieve. Vaig pensar que si hi havia alguna manera de fer regles a nivell servidor, bé n'hi hauria d'haver una altra per fer-ho usuari a usuari, oi? Doncs si, efectivament n'hi ha una: creant un fitxer anomenat .dovecot.sieve a l'arrel de la carpeta arrel de l'usuari. Tan simple i tontu com això, però alhora tan complicat ja que cal tenir accés ssh a la màquina.
Ara per ara doncs, he aconseguit configurar el servidor perquè executi regles a tots els correus i perquè ho faci també al meu compte, i és un plaer veure com els correus es classifiquen solets en carpetes IMAP. Vagi on vagi, sempre ho veig tot endreçat i polit! 🙂 El següent pas, i que de moment m'està costant prou, és implementar un altre intèrpret (probablement el managesieve) que sigui capaç de fer comunicar al sieve amb el squirrel (el roundcube no té plugins encara) i ser capaços de generar els filtres des del correuweb, sense haver d'accedir per ssh.
I una vegada més constato com de tremendament lògic és el linux quan saps on mirar i, ho confesso, després d'hores de cerca de documentació i proves fallides. Ara mateix, crear regles és qüestió de segons i aquí en van alguns exemples:
Separar correu spam:
if header :contains "X-Spam-Flag" "YES" {
fileinto "Junk";
stop;
}
Guardar separament el correu que arriba a un àlies:
if address :contains "to" "info@gracianet." {
fileinto "GraciaNet";
stop;
}
O el d'alguna llista:
if header :contains "subject" "[kernelpanic]" {
fileinto "kernelpanic";
stop;
}
També pots molestar a algú que et molesta 😉
if header :is "from" "ideniel@bcn.cat" {
redirect "ideniel@bcn.cat";
}
o, perquè no, banejar un domini complet:
if address :contains "from" "@socialistes.cat" {
discard;
}
Per ampliar la informació es pot mirar el wiki del dovecot i sieve.
Aquestes coses m’ajuden a treure l’estress….:D
Fins fa poc ho feia amb llibres de fisica quantica…però arriba un moment que els comences a entendre i llavors el tractament se’n va a norris. Ara ho provaré amb els de informàtica….:D
jejeje cani 🙂
m’impressiona que entenguins la física quàntica! 🙂
Vaig començar a llegir-ho pel motiu de no entendre un borrall. Però ara, ja puc anar fent una idea, que és l’objectiu contrari al que és llegir d’una cosa que només entens les paraules (i no totes) però ets incapaç d’entendre les frases, o sigui com l’iber, que entenen les lletres, saben pronunciar-ho, però no saben que vol dir. És sensacional, prova-ho. Et relaxa molt, sempre i quan no t’importi no entendre-ho.
Ara amb la fisica quantica, començo a imaginar (potser molt erròniament) i això ja és dolent.
Reconec que soc rar, molt rar….que hi farem? 😀
gràcies per escriure-ho 🙂 però no em veig capaç de fer-ho jo també…