我使用从Reading e-mails from Outlook with Python through MAPI修改的代码成功连接并阅读了我的Outlook收件箱。我想要做的是在我的收件箱中搜索某些电子邮件主题。我可以通过循环遍历所有电子邮件来做到这一点,但想知道是否有更优雅(可能使用MAPI)方式搜索收件箱?我查看了MailItem methods,但似乎无法找到任何内容。
由于
答案 0 :(得分:1)
您需要使用Application类的AdvancedSearch方法,该方法允许搜索多个文件夹中的项目。 Items类的Restrict和Find / FindNext方法仅允许在单个文件夹中搜索项目。
在Outlook中使用AdvancedSearch方法的主要好处是:
AdvancedSearch
方法会在后台自动运行它。Restrict
和Find
/ FindNext
方法可以应用于特定的Items集合(请参阅Outlook中Folder类的Items属性)。Stop
方法停止搜索过程。详细了解Advanced search in Outlook programmatically: C#, VB.NET文章中的AdvancedSearch
方法。注意,Outlook对象模型对于所有编程语言都是通用的,因此无论使用Python还是C#都无关紧要。
答案 1 :(得分:0)
您发布的链接谈到了使用Outlook对象模型,而不是MAPI - 扩展MAPI是一个完全不同的API,可以从C ++或Delphi访问,但不能从Python中访问。
要搜索电子邮件,请使用Items.Find/FindNext
或Items.Restrict
(其中Items集合来自MAPIFolder.Items
属性) - 有关示例,请参阅https://msdn.microsoft.com/en-us/library/ms268869.aspx。