Advertisement
TrackMaze

Gmail_Crawler.py

Feb 16th, 2013
9,607
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.98 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #Nombre: Tamano_Carpetas_correo.py
  4. #Autor: @kr1shn4murt1
  5. #Lenguaje:Python 2.7.3
  6. #Dependencias: archivo "Correos_Gmail.conf" el cual debe estar en la misma carpeta que el script
  7. #Propósito: Éste script imprime los mensajes que cumplen con un criterio de busqueda de las cuentas de correo definidas en el archivo #"Tamano_Carpetas.conf" estableciendo una conexión imap con cada una.
  8. #Para guardar el reporte en un archivo ejecutar el script desde la linea de comandos así: Tamano_Carpetas_Gmail.py >> Reporte_Tamano_Carpetas[fecha].txt
  9.  
  10. import sys, os, string, imaplib, re, ConfigParser, sys
  11.  
  12. file = 'Correos_Gmail.conf' # Se define el archivo de configuracion
  13. config = ConfigParser.RawConfigParser()
  14. config.read(file) # Se lee el archivo de configuracion
  15. imap_host=config.get('setup','imap_host') # Se define el servidor IMAP tomandolo del archivo .conf    
  16. userlist=config.options('accounts') # Se define la lista de correos tomandolos del archivo .conf
  17.  
  18. for imap_user in userlist:
  19.     try:
  20.         # Se crea el objeto imap de conexion al servidor de Gmail
  21.         M = imaplib.IMAP4_SSL(imap_host)
  22.         imap_pswd=config.get('accounts', imap_user) # Se le asigna el atributo de contraseña al objeto IMAP
  23.         M.login(imap_user, imap_pswd) # Se logea el objeto al servidor IMAP
  24.  
  25.  
  26.         print "---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
  27.         print "*","CUENTA: ",(imap_user),""
  28.         print ""
  29.  
  30.         palabrasABuscar =['clave','usuario','password','pass','vpn','user','username','acceso','pwd','passwd','contrase']       #Aqui hay un problema con la ñ de contraseña
  31.         M.select()
  32.  
  33.         for palabra in palabrasABuscar:
  34.             #print "Palabra buscada es:", palabra.encode("utf-42")  #Intentos de hacer que funcione la ñ
  35.             #print "Palabra buscada es:", palabra
  36.             #typ, data = M.search(None,'TEXT',palabra.encode("utf-8")) #Se busca en todos los mensajes la palabra clave y           #se guardan en un array los mensajes encontrados
  37.             typ, data = M.search(None,'TEXT',palabra)
  38.             for num in data[0].split(): #Por cada mensaje en el array
  39.                 typ, data = M.fetch(num, '(RFC822)') #Se obtiene el mensaje completo con todos sus headers
  40.                 print 'Message %s\n%s\n' % (num, data[0][1]) # Se imprime el mensaje completo en crudo
  41.  
  42.         print "----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"
  43.         M.logout()# Se cierra la conexión de la cuenta de correo (objeto imap con el servidor)
  44.  
  45.     except: # Se atrapan todos los errores para que el programa no termine su ejecución al encontrar un usuario o contraseña incorrectos y se imprimen en pantalla
  46.         e = sys.exc_info()[1]
  47.         print "Error : %s" % e
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement