Da ich mich an den Listings von "Programming Python" orientiert habe, ist mir zuerst gar nicht aufgefallen, dass Teile des Codes veraltet sind. Im speziellen ist das der Gebrauch des rfc288-Moduls zum parsen von Mails. Der neue Standard ist das Modul email, aber ich blicke da echt nicht durch wie das Teil zu verwenden ist, da absolut kein Beispielcode vorhanden ist der bei meinem Problem weiterhelfen könnte. Ausserdem ist email ein zu allgemeiner Begriff, was dazu führt das google nur Müll spuckt...
Ich wäre deshalb froh, wenn mir mal einer erklären könnte, wie ich die Methode parse (das die Headers in einem Dictionary liefern sollte) beutzen muss.
Gebrauch des Moduls email???
Deine Frage ist ziemlich allgemein. Welche parse-Methode meinst Du? Hilft Dir so etwas schon weiter:
Code: Alles auswählen
In [18]: import email
In [19]: m = email.message_from_string('from: me\nto: you\n\ntest')
In [20]: dict(m.items())
Out[20]: {'to': 'you', 'from': 'me'}
Wie krieg ich jetzt damit den Message body raus? Die drei Header die ich haben wollte, hab ich, aber der Message Body verschwindet.
Und eine kleine Frage nebenbei. Sollte
nicht equvalent mit
sein? Wenn ja, warum krieg ich dann einen Syntax Fehler?
Und eine kleine Frage nebenbei. Sollte
Code: Alles auswählen
resultat = Parse().parsestr(string)
Code: Alles auswählen
m = email.message_from_string(string)
Erstmal habe ich es etwas zu umständlich gemacht: So ein Message-Objekt verhält sich selbst schon wie ein Dictionary der Header. Und an den Inhalt der Mail kommt man mit `get_payload()`.
Code: Alles auswählen
In [27]: m = email.message_from_string('from: me\nto: you\n\ntest')
In [28]: m['from']
Out[28]: 'me'
In [29]: m.get_payload()
Out[29]: 'test'