[英]Python get only the most recent Outlook email from a conversation
我正在使用Python 3.5,並通過Outlook電子郵件按郵件主題進行搜索,如果滿足條件,我會將郵件保存到桌面。 我有一個問題,因為當我遍歷郵件時,當我打印滿足if條件的主題時,最終會導致所有郵件都處於對話中(原始郵件和所有響應RE :)。
另一方面,當我將它們保存到桌面(message.SaveAs)時,我僅獲得對話中的第一封電子郵件。
我感興趣的只是對話中的最新郵件,因為如果將其保存到桌面,我也會收到以前的所有回復,因此不需要30個.msg文件。 有辦法嗎? 這是我的代碼:
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders("Main")
subfolder = folder.Folders("Incoming")
inbox = subfolder.Folders("folder1")
for x in IDX:
messages = inbox.Items
message = messages.GetFirst()
for _ in itertools.repeat(None, 100):
try:
Subject = message.subject
if x in Subject:
print(Subject)
message.SaveAs(desktop + '\\' + Subject + ".msg", OlSaveAsType['olMSG'])
message = messages.GetNext()
except:
message = messages.GetNext()
首先,不要循環瀏覽文件夾中的所有項目,請調用Items.Restrict()
傳遞類似" [Subject] = 'you subject' "
,然后在ReceivedTime
上對返回的Items集合( Items.Sort
)進行排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.