Seite 1 von 1
Gebrauch des Moduls email???
Verfasst: Freitag 6. Mai 2005, 19:09
von Clython
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.
Verfasst: Samstag 7. Mai 2005, 00:19
von BlackJack
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'}
Verfasst: Samstag 7. Mai 2005, 09:14
von Clython
Danke BLackJack, damit hast du mein Problem gelöst.
Verfasst: Samstag 7. Mai 2005, 09:55
von Gast
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?
Verfasst: Samstag 7. Mai 2005, 20:59
von BlackJack
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'