簡體   English   中英

在輸入主題列表時在文件夾之間移動 outlook 中的電子郵件,並限制某些條件

[英]Moving emails in outlook between folders while inputing the subject list, and restrictring certain conditions

我正在嘗試搜索“所有 Outlook 項”,然后根據我輸入到代碼中的主題列表查找電子郵件。 一旦找到 email,它就會被移動到另一個文件夾並標記為“任務完成”(電子郵件中的綠色勾號)。

但是,我在嘗試運行代碼時遇到了一些錯誤。 如果有人可以指導我,那就太棒了。

這是代碼:

import win32com.client 


Email = 'johndoe@gmail.com'
subjects = input("Enter a list of subjects separated by commas: ").split(",")
MoveToFolder = "folder1"
Iter_Folder = "folder2"

def find_and_download_case_number_related_emails():

    Outlook = win32com.client.Dispatch("Outlook.Application")
    Outlook_Location = Outlook.GetNamespace("MAPI")

    Lookin_Folder = Outlook_Location.Folders[Email].Folders[Iter_Folder]
    Out_MoveToFolder = Outlook_Location.Folders[Email].Folders[MoveToFolder]

    for message in Lookin_Folder:
        if message.TaskCompleted:
            continue
        for message in Lookin_Folder:
            if message.Subject in subjects:
                message.Move(Out_MoveToFolder)

    for message in Out_MoveToFolder:
        message.MarkAsTaskCompleted()
if __name__ == "__main__":
    find_and_download_case_number_related_emails()

這是我現在遇到的錯誤:

    raise AttributeError("%s.%s" % (self._username_, attr))
AttributeError: <unknown>.Items. Did you mean: 'Item'?

以下代碼行包含錯誤的屬性調用:

outlook.Folders.Items.Restrict

Folders class 不提供Items屬性。 您需要獲取一個Folder實例,然后才使用Items屬性。

我建議使用NameSpace.GetDefaultFolder方法,該方法返回一個Folder object,代表當前配置文件所請求類型的默認文件夾; 例如,獲取當前登錄用戶的默認收件箱文件夾。

要了解RestrictFind / FindNext方法在 Outlook 中的工作原理,您可以查看我為技術博客撰寫的以下文章:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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