IMAP Mail lesen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Hi, ich versuche gerade, mittels IMAP Emails abzurufen. Das funktioniert auch mit diesem Programm. Die auskommentierten Zeilen dienen zum experimentieren.

Code: Alles auswählen

import imaplib

# you want to connect to a server; specify which server
server= imaplib.IMAP4_SSL('myserver.de')
# after connecting, tell the server who you are
server.login('*user*', '*********')
# this will show you a list of available folders
# possibly your Inbox is called INBOX, but check the list of mailboxes
code, mailboxen= server.list()
#print mailboxen
# if it's called INBOX, then
server.select("INBOX")
#r, data = server.search(None, "(NEW)")
r, data = server.search(None, "(UNSEEN)")
#print r
#print data
if data!=['']:
    print "==============================================================="
    for message in data[0].split():
        #print message
        #r, data = server.fetch(message, '(UID BODY.PEEK[TEXT])')
        r, data = server.fetch(message, '(UID RFC822.TEXT)')
        #print r
        #server.store(message, '-FLAGS', '\\Seen')
        print data
        #for i in data:
        #    print i
        print "==============================================================="
else:
    print "Keine neuen Nachrichten"

server.close()
server.logout()
Als Ergebnis erhalte ich sowas
('5 (UID 8 RFC822.TEXT {1782}', "Sehr geehrter Herr Xyz\r\n\r\nVielen Dank f\xfcr Ihre ...")
)
So weit, so gut. Jetzt suche ich aber nach einer Möglichkeit, den eigentlichen Text herauszufiltern und die Escape Sequenzen umzuwandeln. Habe aber noch nicht das passende gefunden. Leider kann man die Rückgabe nicht sinnvoll wie eine Liste durchlaufen. data[0] ist fast der komplette Text und data[1] enthält lediglich die schließende Klammer )


Oder gibt es noch eine andere Möglichkeit, direkt an den reinen Text der Mail zu kommen? Das 'email' Package ist ja eher zum Versenden von Mails, oder? Tappe im Moment etwas im dunklen.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Sorry, hab übersehen, dass in der Liste nochmal ein Tuple ist. Mit data[0][1] komme ich an die gewünschte Information
Antworten