簡體   English   中英

Python僅從對話中獲取最新的Outlook電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM