我正在搜索"所有Outlook项目"然后根据我输入到代码中的主题列表查找电子邮件。一旦找到邮件,它就会被移到另一个文件夹中,并标记为"任务完成"。(电子邮件中的绿色勾号)。
然而,当我试图运行代码时,我有几个错误。如果有人能指导我,那就太棒了。
代码如下:
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
类不提供Items
属性。您需要获得一个Folder
实例,然后才使用Items
属性。
Folder
对象,该对象表示当前配置文件的请求类型的默认文件夹;例如,获取当前登录用户的默认Inbox文件夹。
要了解Restrict
或Find
/FindNext
方法如何在Outlook中工作,您可以看看我为技术博客写的以下文章:
- 如何:使用Find和FindNext方法从文件夹中检索Outlook邮件项目(c#, VB.NET)
- 如何:使用Restrict方法从文件夹 中检索Outlook邮件项目