Foros del Web » Programando para Internet » Python »

Hotmail & Python

Estas en el tema de Hotmail & Python en el foro de Python en Foros del Web. Hola amigos . Se me ocurrió hacer un script que se logee en mi cuenta de hotmail y compruebe si hay mensajes nuevos. Estoy buscando ...
  #1 (permalink)  
Antiguo 09/06/2010, 11:59
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
Hotmail & Python

Hola amigos . Se me ocurrió hacer un script que se logee en mi cuenta de hotmail y compruebe si hay mensajes nuevos. Estoy buscando por google pero parece que a nadie se le ocurrió algo parecido.... Pido porfavor a los que sepan que me digan si hacer algo asi es posible. (y una pista de como desarrollar el codigo ..... ! )

Thanks !
  #2 (permalink)  
Antiguo 09/06/2010, 12:40
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Hotmail & Python

No se que usa hotmail imap o pop, se usaría una librería para cada caso...
Imaplib fue la que yo utilizé
Tambien tienes pop
Suerte y un saludo
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #3 (permalink)  
Antiguo 09/06/2010, 13:37
Avatar de Nekeniehl  
Fecha de Ingreso: julio-2009
Ubicación: Berlin, Alemania / Granada, España
Mensajes: 132
Antigüedad: 14 años, 9 meses
Puntos: 6
Respuesta: Hotmail & Python

He seguido buscando algo más de información y por aquí tienes esto:
Cita:
■Servidor POP: pop3.live.com
■Puerto POP: 995.
■POP SSL: Si.
■Usuario: Tu Windows Live ID ([email protected]).
■Contraseña: Tu palabra clave habitual.
■Servidor SMTP: smtp.live.com
■Puerto SMTP: 587
■¿Autenticación necesaria?: Sí, usando los mismos datos de usuario y contraseña.
Esa es toda la configuración necesaria, el resto te lo tendrás que currar con codigo...

Aquí la librería smtplib que es la necesaria.
Aquí un ejemplo
Suerte =D
__________________
Antes de cambiar el mundo...dá tres vueltas por tu casa

Usa Google es tu amigo ;)
  #4 (permalink)  
Antiguo 09/06/2010, 23:14
Avatar de dmassive  
Fecha de Ingreso: febrero-2002
Ubicación: Paraná - Entre Ríos - Argentina
Mensajes: 279
Antigüedad: 22 años, 2 meses
Puntos: 7
Respuesta: Hotmail & Python

Hola!

yo hice algo con un webmail que no permitia acceso por pop3.
Use la libreria http://pamie.sourceforge.net/ Realmente es muy sencillo utilizarla.

No se si servira con otro SO que no sea Windows ya que usa el IE. Pero hace mucho que lo use, quizas ahora este mas avanzada la libreria.

Saludos!
__________________
Blümchen... einfach die rave Prinzessin
http://www.dmassive.com.ar/
  #5 (permalink)  
Antiguo 10/06/2010, 16:25
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
Sonrisa Respuesta: Hotmail & Python

OK muchas gracias a los dos,,,, ahora ya se por donde empezar.
  #6 (permalink)  
Antiguo 10/06/2010, 18:37
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

Código Python:
Ver original
  1. conn = SMTP('smtp.live.com', 587)
  2. conn.ehlo()
  3. conn.starttls()
  4. conn.ehlo()
  5. conn.login("[email protected]", "contraseña")
  6. conn.sendmail("[email protected]", "[email protected]", "Python es genial")
  7. conn.quit()

Algo quisquilloso el servidor me llevo varios intentos para lo hicera jalar :P
Esto es para enviar correos.
  #7 (permalink)  
Antiguo 11/06/2010, 12:02
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Hotmail & Python

OK Razpeitia, tu codigo me ha sido de mucha ayuda, un par de arreglillos y he conseguido enviar mensajes con Python !

Estoy estudiando la libreria smtplib, pero para ver los mensajes de la bandeja de entrada hay que utilizar imaplib ¿ verdad ?

Asi que cuando termine con una empezaré con la otra.... pero las 2 tienen muchisimos metodos y ninguno facil... almenos para mi que python es solo un hobby y mis estudios son mas bien escasos... jajajaj Asi que no me cansaré de dar las gracias a todos los que ayudais a los simples aficionados como yo.

Aver si pronto cuelgo aqui el codigo funcionando como yo quiero

Saludos
  #8 (permalink)  
Antiguo 11/06/2010, 18:28
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

En las FAQ's hay un ejemplo ademas siempre puedes leer la documentación del poplib

Una explicación rápida:
Para enviar correos puedes hacerlo mediante el protocolo smtp, mientras que para checar correos puedes usar el protocolo pop3 o imap todo depende de protocolo use el servidor. Para gmail puedes tener pop3 o imap y obviamente smtp, pero con hotmail al parecer no puedes conectarte con imap, (no de manera oficial). Así que te recomiendo que uses poplib

Es mas deja hago un pequeño código para que muestre los mensajes.
  #9 (permalink)  
Antiguo 11/06/2010, 18:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

Código Python:
Ver original
  1. import poplib, getpass
  2.  
  3. M = poplib.POP3_SSL('pop3.live.com', 995)
  4. M.user(raw_input("Dame el usuario\n"))
  5. M.pass_(getpass.getpass("Dame el password\n"))
  6. numMessages = len(M.list()[1])
  7. for i in xrange(numMessages):
  8.     for j in M.retr(i+1)[1]:
  9.         print j
  10. print "Total de mensajes:", numMessages

Aquí un pequeño código modificado, te imprime todos los correos. Si lo ejecutas en el IDLE seguramente tendrás problemas, pero si lo ejecutas directamente en la consola no habrá problemas.
  #10 (permalink)  
Antiguo 12/06/2010, 03:31
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
De acuerdo Respuesta: Hotmail & Python

Muuuy bueno Razpetia ! GeniaL.

Solo como comentario, a mi me pasa al revés de lo que tu dices: desde consola se bloquea al pedir la contraseña encambio desde IDLE funciona, aunque muestra un Warning que la contraseña le falta 'echoed' que demomento no se a que se refiere,,, pero aún asi funciona perfecto.

Voy a 'entrar en materia' Estudiaré smtp y pop, y mas adelante imap ....... porque tu codigo funciona pero.... mi objetivo es entenderlo !!!

  #11 (permalink)  
Antiguo 12/06/2010, 12:15
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Hotmail & Python

Una consulta razpeitia, sobre el warning que me muestra tu codigo: estoy haciendo pruebas y canvie la entrada de la contraseña por otro raw_input en lugar de getpass, el resultado es que el codigo sigue funcionando y no muestra ningun warning....
¿ la desventaja de utilizar raw_input en la contraseña está relacionado con la seguridad ?

Mira aqui el codigo modificado:

Código Python:
Ver original
  1. import poplib
  2.  
  3. m= poplib.POP3_SSL('pop3.live.com',995)
  4. m.user(raw_input('Usuario: '))
  5. m.pass_(raw_input('contraseña: '))
  6. numero = len(m.list()[1])
  7. print 'Total Mensajes = ', numero

Última edición por Bosc; 12/06/2010 a las 12:26
  #12 (permalink)  
Antiguo 12/06/2010, 12:30
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

Si esta relacionado con la seguridad, no debería darte problemas en consola, pero usando el IDLE si.

Por que yo lo probé con el IDLE y efectivamente me dio problemas, mientras que en consola no tuve ningún problema.

Inclusive en la documentación te lo indica.

Cita:
Iniciado por pydoc
Note If you call getpass from within IDLE, the input may be done in the terminal you launched IDLE from rather than the idle window itself.
  #13 (permalink)  
Antiguo 14/06/2010, 09:17
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
Respuesta: Hotmail & Python

Pues lo he vuelto a provar y me pasa lo contrario de lo que dices: en consola se bloquea y no funciona, pero en IDLE trabaja bien... No se porque será ... Para que no hayan dudas: en consola me refiero haciendo doble click al archivo.py o haciendole llamada desde cmd (Linea de comandos) --- y a IDLE a: Python Shell

Y algunos comentarios mas sobre el tema:

Queria que el codigo mostrara el numero de mensajes nuevos, pero con la libreria poplib creo que no es posible, almenos con hotmail, ya que agarra todos los mensajes de la bandeja , ya sean leidos o no leidos y los muestra como mensajes nuevos. Para arreglar esto se deberia utilizar imaplib, pero parece que imaplib no
es compatible con hotmail... asi que bueno, para empezar no está mal,,, asi que
yo sigo con estas librerias que me parecen muy interesantes....

Python nos da la Paz
  #14 (permalink)  
Antiguo 14/06/2010, 12:57
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

Se me ocurre una idea.

Obtén todas las ID de los mensajes con POP3.uidl.
Haces un diccionario mas o menos así d[ID] = False
Falso es que esta como leido y verdadero como leído.
La primera vez los puedes tomar a todos como leídos o no leídos depende de ti.
Después cada vez que actualices compara las nuevas las nuevas ID con las viejas ID.
Sincroniza los ID y listo.

Ok tal vez no sea la mejor opción, pero al menos cumple con el cometido.

Igual deja busco algo eficiente. :P
  #15 (permalink)  
Antiguo 14/06/2010, 13:14
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Hotmail & Python

Ok, leyendo un poco mas a fondo, el protocolo POP3 no deberia ser usado para esta tarea en especifico.

En vez de usar POP3 podrías usar feed atom pero como se trata de hotmail.

Tal vez con alguna API para hotmail (pero realmente dudo que haya alguna).
  #16 (permalink)  
Antiguo 14/06/2010, 15:37
Avatar de Bosc  
Fecha de Ingreso: marzo-2010
Mensajes: 43
Antigüedad: 14 años, 1 mes
Puntos: 3
De acuerdo Respuesta: Hotmail & Python

Yo estube analizando las cabezeras de los mensajes por si veia algun indicador de Leido - No Leido,,, pero nada. Otra posible solución seria mostrar una linea del texto de cada mensaje.... Y lo de utiilizar UIDL y hacer un diccionario ¡ suena bien ! voy a hacer pruebas ahora mismo___

Edito: Bueno, cambie tu idea de usar un diccionario por usar una lista que guarda las cabezeras de los mensajes, asi cuando ejecuto el codigo compara unas y otras para ver si hay nuevas, el problema es que el resultado no es real, me esplico:

- Ejecuto el script y me dice que hay 1 nuevo mensaje, pero no entro en la pagina de hotmail para mirarlo asi que realmente seguirá siendo un mensaje marcado como No leido,

- Luego vuelvo a ejecutar el escript y me dice que no hay ningun mensaje nuevo, ya que anteriormente ya habia guardado su cabezera. Pero en realidad si que hay un mensaje que no he leido.

Última edición por Bosc; 22/06/2010 a las 04:36

Etiquetas: hotmail
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 11:01.