nachdem meine ersten Versuche mit Python und den Modulen tkinter und poplib recht zügig Erfolg brachten, hänge ich seit einiger Zeit an einem Problem bei der Umwandlung von den "eMail-Rohdaten" in einen vernüftigen Text. Dazu muss ich sagen, dass ich blutiger Anfänger in der Programmierung mit Python bin. Unten mein Code, der mir die letzte Nachricht in einer Datei abspeichert und auch in einem Fenster ausgibt. Außerdem habe ich mir die nötigen Informationen (die ich später für mein Format zur Abspeicherung benötige) ebenfalls im Code zusammengesammelt.
Ich dachte die get_payload Funktion einbinden zu können (siehe auskommentierter Bereich unten), aber bekomme kein brauchbares Ergebnis.
(1.) Kann mir jemand helfen bzw. einen Tipp geben wo mein Fehler liegen könnte? (die Nachricht ist ein Text)
In weiteren Schritten möchte ich dann auch HTML und zusammengesetzte Nachrichten lesbar darstellen. Auch evtl. Anhänge möchte ich separat abspeichern können. ... aber Schritt für Schritt ...
Auch bekomme ich das Betreff mit teilweise Hieroglyphen angezeigt.
(2.) Kann mir jemand Hilfestellung zur Umwandlung in einen lesbaren Text geben?
Vielen Dank schon einmal im Voraus.
Maik
Code: Alles auswählen
#!/usr/bin/env python3
#Python 3.2.3 (default, Jun 18 2015, 21:46:42)
#[GCC 4.6.3] on linux2
from tkinter import *
import poplib
#import email
#import codecs
server = poplib.POP3_SSL('pop.gmx.net')
server.user('Benutzer')
server.pass_('Passwort')
serverstatus = server.stat()
AnzahlMails = serverstatus[0]
header,message,octets = server.retr(AnzahlMails)
server.quit()
f = open('/home/maik/Öffentlich/Mail.dat', 'w')
s = str(message)
f.write(s)
f.close()
IndexFrom = str(message).find("b'From:")
IndexEndFrom = str(message).find("b'", IndexFrom+1)
From = str(str(message)[IndexFrom+2:IndexEndFrom-3])
IndexTo = str(message).find("b'To:")
IndexEndTo = str(message).find("b'", IndexTo+1)
To = str(str(message)[IndexTo+2:IndexEndTo-3])
IndexSubject = str(message).find("b'Subject:")
IndexEndSubject = str(message).find("b'", IndexSubject+1)
Subject = str(str(message)[IndexSubject+2:IndexEndSubject-3])
IndexContentType = str(message).find("b'Content-type:")
if IndexContentType == -1:
IndexContentType = str(message).find("b'Content-Type:")
IndexEndContentType = str(message).find("b'", IndexContentType+1)
ContentType = str(str(message)[IndexContentType+2:IndexEndContentType-3])
IndexDate = str(message).find("b'Date:")
IndexEndDate = str(message).find("b'", IndexDate+1)
Date = str(str(message)[IndexDate+2:IndexEndDate-3])
fenster = Tk()
fenster.title("Tool e-Mails auslesen")
fenster.geometry("500x300")
label1 = Label(fenster, text=From, anchor=W, justify=LEFT)
label1.place(x=20, y=20, width=500, height=20)
label2 = Label(fenster, text=To, anchor=W, justify=LEFT)
label2.place(x=20, y=40, width=500, height=20)
label3 = Label(fenster, text=Subject, anchor=W, justify=LEFT)
label3.place(x=20, y=60, width=500, height=20)
label4 = Label(fenster, text=Date, anchor=W, justify=LEFT)
label4.place(x=20, y=80, width=500, height=20)
label5 = Label(fenster, text=ContentType, anchor=W, justify=LEFT)
label5.place(x=20, y=100, width=500, height=20)
S = Scrollbar(fenster)
T = Text(fenster)
T.place(x=20, y=120, width=460, height=200) #50
S.pack(side=RIGHT, fill=Y)
#T.pack(side=LEFT, fill=Y)
S.config(command=T.yview)
T.config(yscrollcommand=S.set)
IndexMail = str(message).find("b''")
Mail = str(str(message)[IndexMail+2:])
#msg = email.message_from_string(str(message))
#message1 = msg.get_payload(decode=True)
#message1 = msg.get_payload()
quote = Mail
T.insert(END, quote)
fenster.mainloop()