Saiyine
Punto Com

Filtro antispam en una carpeta de correo Maildir

2003-11-02 00:00:00

Este es el tipico filtro antispam basado en patrones de texto, en particular, en expresiones regulares: cuando el programa encuentra que alguna de las expresiones regulares contenidas en un fichero de filtros esta en el fichero del correo, lo marca como spam y mueve el fichero fuera de la carpeta Maildir a otra carpeta indicada en el programa. Evidentemente, se puede modificar de forma trivial para que elimine dichos correos basura, e invito ha hacer las modificaciones pertinentes si ese es el deseo del lector, pero, personalmente, precisamente hice este programa para reemplazar una funcionalidad de otro, que siempre eliminaba el spam sin informar de lo que habia hecho y por que, y para mi gusto era tomarse demasiadas libertades, sobre todo cuando esta en juego la eliminacion por error de correos importantes. Dicho, esto paso a mi programa, llamado filtroantispam:

#!/usr/bin/perl open (FICHERO, $ARGV[0]); while ( <FICHERO> ) { # Medida de seguridad importante, nunca bajar a 0 o todo sera spam if ( length ( $_ ) > 5) { $_=~s/\\n$//; push ( @filtros, $_ ); } } close(FICHERO); shift (@ARGV); # Directorio en el que guardamos los Spams $directoriospams="/home/saiyine/Spam"; # ¿Anotamos todo lo que hemos filtrado? $anotar="Si"; foreach $fichero (@ARGV) { open (FICHERO, $fichero); @lineas = &lt;FICHERO>; close(FICHERO); $esspam="No"; $alfinal=0; foreach $filtro (@filtros) { foreach $linea ( @lineas ) { if ( $linea=~/$filtro/i ) { if ( $anotar eq "Si" ) { print "$fichero contiene <$filtro>\\n"; } system ("mv $fichero $directoriospams"); $esspam="Si"; last; } } if ( $esspam eq "Si" ) { last; } } }

El fichero de filtros contiene expresiones regulares del estilo perl que si las contiene el correo lo marcaran como spam. Es importante pensar muy bien la expresion regular, ya que una regex demasiado ambigüa puede hacer pensar al programa que todo lo que te llegue es spam, lo que te haria tener que estar mirando de vez en cuando en el deposito de correos basura, cosa que tampoco estaria demasiado mal hacer de vez en cuando "por si acaso". Este es un ejemplo con las primeras lineas de mi fichero de filtros

From:.*dannimail* Subject:.*orreo.*asura.*$ Subject:.*natural.*figures.* From:.*pills\.com.* From:.*internet.*deals.* Subject:.*[V|v][i|1]agra.*

Rollos antiguos

2003-12-29 00:00:00 - Calculadora modo texto.

2004-01-28 00:00:00 - Dejar pasar desde o hasta una linea.

2004-01-28 00:00:00 - Ejemplo de acceso a un fichero binario.

2004-12-16 00:00:00 - Extraer URLs de la entrada estandard.

2005-04-07 00:00:00 - Ejecutar comandos al cambiar la ip.

Saiyine

Selfie of meHi! Welcome to Saiyine Punto Com where I talk about anything that goes through my mind!

Puedo prometer y prometo que a la mayor brevedad aquí irá un menú o algo asín.