miércoles, 1 de octubre de 2014

¡Recibimos correos!

Finalmente con la ayuda del profesor pudimos recibir los correos de forma correcta.

listaCorreos=Listbox(ventanaPrincipal,width=152, height=25,relief=RIDGE)
    listaCorreos.place(x=20, y=180)
    def CurSelet(evt):
            try:
                ind = listaCorreos.curselection()
                if listaCorreos.curselection() != ():
                        sel = listaCorreos.get(ind)
                verCorreos(persona, lineas[0],listaBody[ind[0]], mitexto)
            except:
                    print ""
    listaCorreos.bind('<<ListboxSelect>>',CurSelet)
    conn = imaplib.IMAP4_SSL("imap.gmail.com", 993)
    conn.login("progmoz@gmail.com", "progmoz2014")
    conn.select()
    listaPersonas=[]
    listaAsuntos=[]
    listaBody=[]
    typ, data = conn.search(None, 'UNSEEN')
    try:
        for num in data[0].split():
                typ, msg_data = conn.fetch(num, '(RFC822)')
                for response_part in msg_data:
                        if isinstance(response_part, tuple):
                                msg = email.message_from_string(response_part[1])
                                subject=msg['subject']
                                persona=msg['from']
                                payload=msg.get_payload()
                                body=extract_body(payload)
                                listaBody.append(body)
                                correo=open('correo.txt','w').write(persona)
                                listaPersonas.append(persona)
                                correo=open('correo.txt','r')
                                lineas=correo.readlines()
                                persona1=lineas[0]
                                correo=open('correo.txt','w').write(subject)
                                listaAsuntos.append(subject)
                                correo=open('correo.txt','r')
                                lineas=correo.readlines()
                                listaCorreos.insert(1,"De: "+persona1+ "   Asunto: "+ lineas[0])
                                listaCorreos.place(x=20, y=180)
                typ, response = conn.store(num, '+FLAGS', r'(\Seen)')
    finally:
            try:
                conn.close()
            except:
                pass
            conn.logout()
Se necesita saber la posición de los correos recibidos en el listbox, para eso se creó el índice, y así ir printando el respectivo cuerpo de los correos.