Ich schreibe ein Python-Skript, um E-Mails zu verarbeiten, die von Procmail zurückgegeben werden. Wie in dieser question vorgeschlagen, verwende ich die folgende Procmail config:E-Mail mit Python analysieren
:0:
|$HOME/process_mail.py
Mein process_mail.py Skript eine E-Mail über stdin wie folgt erhält:
From hostname Tue Jun 15 21:43:30 2010
Received: (qmail 8580 invoked from network); 15 Jun 2010 21:43:22 -0400
Received: from mail-fx0-f44.google.com (209.85.161.44)
by ip-73-187-35-131.ip.secureserver.net with SMTP; 15 Jun 2010 21:43:22 -0400
Received: by fxm19 with SMTP id 19so170709fxm.3
for <[email protected]>; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.103.84.1 with SMTP id m1mr2774225mul.26.1276652853684; Tue, 15
Jun 2010 18:47:33 -0700 (PDT)
Received: by 10.123.143.4 with HTTP; Tue, 15 Jun 2010 18:47:33 -0700 (PDT)
Date: Tue, 15 Jun 2010 20:47:33 -0500
Message-ID: <[email protected]>
Subject: TEST 12
From: Full Name <[email protected]>
To: [email protected]
Content-Type: text/plain; charset=ISO-8859-1
ONE
TWO
THREE
Ich versuche, das zu analysieren Nachricht auf diese Weise:
>>> import email
>>> msg = email.message_from_string(full_message)
Ich möchte Nachrichtenfelder wie 'Von', 'An' und 'Betreff' bekommen. Das Nachrichtenobjekt enthält jedoch keines dieser Felder.
Was mache ich falsch?
Wie bekomme ich den Text der E-Mail hier? – Anuj
Wenn Sie wirklich den gesamten RFC2822-E-Mail-Körper mit rohen MIME-Strukturen und allen wollen, ist das Parsen der Nachricht in Python grundsätzlich überflüssig; der Körper ist alles nach der ersten Leerzeile. Normalerweise möchten Sie bei modernen Nachrichten die MIME-Struktur parsen und einen oder mehrere Körperteile extrahieren. – tripleee