2016-07-26 6 views
1

Ich entwickle ein Skript, das mir erlaubt, das Feld "Received" aus dem Header einer Datei .mbox zu lesen.Python eMail Maibox - Lies alle "Empfangenen" Schlüssel

Dies ist ein kleiner Teil des Codes:

mbox = mailbox.mbox(filename) 
print message.keys() 
print message["Received"] 

Der Druck der Keys nimmt mir dieses Ergebnis:

['Return-Path', 'Delivered-To', 'Received', 'Delivered-To', 'Received', 'X-Received', 'Received', 'Received-SPF', 'Authentication-Results', 'DKIM-Signature', 'Received', 'To', 'From', 'Subject', 'Message-ID', 'Disposition-Notification-To', 'Date', 'User-Agent', 'MIME-Version', 'Content-Type', 'Content-Transfer-Encoding', 'X-AntiAbuse', 'X-AntiAbuse', 'X-AntiAbuse', 'X-AntiAbuse', 'X-AntiAbuse', 'X-Get-Message-Sender-Via', 'X-Authenticated-Sender', 'X-Source', 'X-Source-Args', 'X-Source-Dir', 'X-getmail-retrieved-from-mailbox', 'X-GMAIL-THRID', 'X-GMAIL-MSGID'] 

Daraus ich sehe, dass es 3 Felder „Received“, aber wenn ich führe:

print message["Received"] 

Es zeigt nur das erste Feld, wie drucke/zeige ich sie alle?

Dank Andrea

Antwort

1

Wenn Sie __get__ nennen es wird die Liste der msg-Header und gibt die erste mit passenden Namen linear abzutasten. Um mehrfach zu verwenden items() methode dh:

print [v for k, v in message.items() if k == "Received"] 
Verwandte Themen