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()
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 )('5 (UID 8 RFC822.TEXT {1782}', "Sehr geehrter Herr Xyz\r\n\r\nVielen Dank f\xfcr Ihre ...")
)
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.