ich habe ein Python3 Skript geschrieben. Dieses holt die Daten über pop3 ab. Leider erhalte ich die Mail mit Header und Body. Mein Ziel wäre es jedoch nur die Informationen im Mail-Body zu erhalten. Hätte jemand hierzu eine Idee oder einen Tipp.
@Mardor: Die Standardbibliothek hat alles was man braucht um E-Mails zu parsen und die Einzelteile zu extrahieren. Alternativ könntest Du Dir die Spezifikation von E-Mails anschauen und selbst die Header abtrennen. Das ist recht einfach.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Entweder händisch in dem du nur den Teil ab dem Boundary ausgibst, oder du verwendest einfach ein entsprechendes Modul zum parsen von Emails. Für Python3 gibt's z.B. email.utils.
When we say computer, we mean the electronic computer.
Nein, poplib ist ja afaik nur dazu da, um eine Mail von einem Server zu holen. Mit den zusätzlichen email-Modulen die bereits in der Standardbibliothek von Python (also bei der Installation) enthalten sind, kannst du die Nachricht parsen und verarbeiten.
anzahl = emailinfo[0]
for i in range(anzahl):
for email in pop3_conn.retr(i + 1)[1]:
message = email.message_from_string(email.decode())
print(message.get_payload())
When we say computer, we mean the electronic computer.
Jeder Name kann logischerweise nur an einen Wert zur gleichen Zeit gebunden werden. Wenn Du eine Funktion aus dem `email`-Modul verwenden willst, darfst Du die Bytes der Mail halt nicht *auch* an den Namen `email` binden, denn dann kommst Du über den Namen nicht mehr an das Modul heran.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
in meinem Beispiel ist ein Fehler, da bei der Iteration der Name ´email´ das email-Modul shadowed. Du kannst stattdessen sowas wie ``for message in ...`` schreiben, um `email.message_from_string()` gefahrlos verwenden zu können und keine Kollision zu riskieren.
When we say computer, we mean the electronic computer.