2016-08-03 23 views
1

Ich habe den folgenden Code, der funktioniert, es kann die neueste E-Mail in meinem Outlook-Posteingang lesen und den Text dieser Nachricht drucken. Ich möchte jedoch eine statische E-Mail-Adresse angeben und alle Nachrichten von dieser Person zurückgeben können. Wie würde ich den Code ändern, um das zu tun?Wie suche ich nach einer bestimmten Outlook-E-Mail in Python

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
messages = inbox.Items 
message = messages.Getlast 
body_content = message.body 
print body_content 

Habe ich es als Veränderung ‚messages.Getlast‘ so etwas wie ‚messages.Get (‘ E-Mail-Adresse hier '), aber kein Glück damit so einfach wäre.

Vielen Dank im Voraus für jede Hilfe.

Antwort

1

Sie haben bereits ein Skript, mit denen Sie die Liste der Nachricht in einem Ordner zu erhalten:

outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
messages = inbox.Items 

Wenn Sie alle Nachrichten bekommen, man muss nur prüfen, ob der Absender der Nachricht ist die gleiche:

sender = "my_sender" 
sender = sender.lower() 
for message in messages: 
    if sender in message.sender.lower(): 
     # This message was send by sender 
     print message.body 

sollten Dieser Code den Körper eines jeden message in messages drucken, wo sender in message.sender enthalten ist.

Ich habe die lower() Funktion hinzugefügt, um Probleme mit Kappen zu vermeiden. Möglicherweise möchten Sie es entfernen.

Ich hoffe, es wird helfen.