Mostrando las entradas con la etiqueta spam. Mostrar todas las entradas
Mostrando las entradas con la etiqueta spam. Mostrar todas las entradas
martes, noviembre 03, 2009
sex.py, o como validar direcciones de correo
Necesitaba limpiar una carpeta llena de archivos .txt, una Maildir en realidad, repletos de encabezados de rebotes y explicaciones de los majordomos y mailer-daemons. Es decir, recorrer esta marabunta de archivos, y volcar las direcciones de correo que allí figuraran.
Y me encontré con un tremendo programa, sex.py - este programa ya no puede encontrarse en el sitio de los desarrolladores, de modo que subi una copia aqui:
http://www.bunker.org.ar/incubadora.varios/Tools/sex.py
Actualización: Antes de ejecutarlo, suministrarle unas librerías necesaria:
sudo apt-get install python-dnspython python-ldns python-adns python-dns
Ejemplo:
python sex.py -sr Maildir/ base.txt
Este script es prácticamente una aspiradora de direcciones de correos, y puede ser apuntado hacia cualquier cosa, una url, un archivo, una carpeta, comparando con servidores dns por direcciones de correo validas, ordenando, quitando duplicados, volcando resultados a otro archivo, de todo.
Ejemplo para chequear si son direcciones validas desde el punto de vista del DNS:
sex.py -y base.txt | tee comparados.csv
Paciencia... este paso demora mucho. Y cuando termina veremos muchos codigos de error de todo tipo. Cuentas saturadas, inexistentes, mail server que evitan la conexion, filtros antispam celosos, etc.
Ocasionalmente aparecen algunos con codigo 250, que no son error pero que aparecen aquí.
De modo que evito estos "250" con
grep -v '250' comparados.csv > comparados2.csv
Ahora conviene abrir el comparados2.csv con openoffice, y quedarse con la columna A. Luego, esa columna puede pegarse en gedit para evitar durante la comparación que viene a continuación, problemas con codificaciones. El archivo mas limpio que obtenemos con gedit podriamos llamarlo, por ejemplo, sucios.txt
Tenemos ahora un archivo con direcciones que no sirven. Si quiero compararlos con mi archivo original, gigantesco de correos, y crear un nuevo archivo de direcciones validas:
for i in `cat base.txt`; do echo $i|grep -v -f sucios.txt; done > limpitos.new
Ojo que este for puede demorarse bastante. Chequear en otra terminal mediante un
tail -f limpitos.new
Listo, ahora me aseguro de no sobre exigir el smtp con rebotes innecesarios (que siempre son la mayoría). Además, es de unos amigos, y no quiero abusarme.
Otra alternativa a este bucle, a veces incompatible con algunos shells, son las siguientes líneas que disfruté programando en ruby.
i = 0
File.open('base.txt', 'r') do |f1|
while linea = f1.gets
File.open('sucios.txt', 'r') do |f2|
while linea2 = f2.gets
if linea == linea2
#puts "mail que existe en rebotados! - se debe ignorar" + linea
sucio = 1
break
else
sucio = 0
end
end #fin while 2
unless sucio == 1
puts linea
i = i + 1
end
end #fin segundo file.open
end #fin primer while
end #fin primer open
puts "Total limpios " + i.to_s
Se puede bajar desde http://www.bunker.org.ar/incubadora.varios/Tools/limpiar.rb
Eso es todo. Ahora se puede usar esta salida con algún programa como ssmtp, o para lo que usted quiera. Yo lo uso con mi Regadera. Como dato, de una base de 8000 correos, me quedaron limpios 6634, y sumado a la comprobación de que tienen muy buenas posibilidades de saltar filtros anti spam.
Saludos
martes, febrero 10, 2009
Regadera 0.1

El fin de semana necesitaba enviar un aviso a un listado grande de correos (869). Sin embargo, no quiero abusar de mi SMTP, que además de ser pago, soporta algo así como 200 msg/hora.
Disclaimer: Es muy poco frecuente que me dedique a este tipo de tareas, y todas las direcciones que tengo que enviar son de profesores y alumnos de la escuela.
El sabado estuve bajando sharewares que hacían la tarea. Y son todos malisimos. El mejorcito, Atomic NoseQue se colgaba en el 67º envío.
Al final, bastante mosqueado, escribí este programita en java.
1) Alimenta un vector con un archivo repleto de correos. No, no soporta wab, ni doc, ni csv, ni pst. Un poco de rudimentaria minería y una hoja de cálculo, bastaría para crearlo.
2) Serializa el comando ssmtp (¡ojo, q no es un daemon, RTFM!). Hay que configurarlo previamente como figura aquí.
3) Deja tranquilo al server un (buen) rato, y vuelve a la carga. Ajustable, vea.
Decidí no agregarle lectura de parámetros desde consola, a fin de no facilitarle las cosas a cualquier cochino spammer que pudiera llegar hasta aquí.
Úsese con amor y criterio.
(haga click en criterio para bajar)
Suscribirse a:
Entradas (Atom)