7 de agosto de 2006

python correo archivos enviados

Bueno aqui un script de como sacar cierto texto de un archivo mezclando otro:

1. tengo una lista de archivos en /etc/passwd humm?? pero tiene varios campos, solución: cut -d: -f1,1 /etc/passwd >usuarios

2. teniendo el archivo usuarios ahora quiero ver los correos enviados de todos esos usuarios y sobre todo los adjuntos que pueda haber tenido.
3. para esto use python pude haber usado c , perl u otro pero python viene bien.

import re
import string

def existe(nombre):
try:
f = open(nombre)
f.close()
return 1
except:
return 0

# Primero abrimos el archivo en modo lectura (r)
usr = open("/opt/usuarios","r")
# leemos el archivo, colocamos el contenido en una lista e imprimimos cada item
for lin in usr.readlines():
b = lin.strip()
envi = "/home/" + b + "/mail/sent-mail"
if existe(envi)>=1:
inp = open(envi,"r")
if (re.search("filename=", linea)):
print a, d, linea
inp.close()
usr.close()
entonces que hace esto, algo sencillo coge la lista de usuarios de el archivo /opt/usuarios linea a linea cogiendo el usuario y con el comando strip quitamos el \n retorno de carro, entonces tenemos solo el usuario y ahi concatenamos la ruta donde se guardan los correos enviados! asi entonces abrimos y buscamos el campo filename de cada envio que ha hecho el usuario.

ahora bien, se definio la funcion Existe, porque? lo que pasa es que python cuando ve un error de no existencia del archivo suele mandar error y abortar el programa entonces que pasa si un usuario no envio mail, entonces abortaria la lista de usuarios que tenemos y no la terminaria, entonces por eso la validacion.

y bueno esto leeria todos los correos enviados de todos los usuarios del sistema siempre en cuando lo tengan en /etc/passwd y /home/mail/sent-mail y nos mostraria que archivos ah enviado y ah donde.

IMHO.

0 comentarios: