【问题标题】:How to fix OLE error while parsing emails如何在解析电子邮件时修复 OLE 错误
【发布时间】:2019-11-21 00:27:17
【问题描述】:

在使用 win32com 模块通过 python 解析我的 Outlook 时,我遇到了 OLE 错误。

Traceback (most recent call last):
    for i, message in enumerate(messages):
pywintypes.com_error: (-520879857, 'OLE error 0xe0f4010f', None, None)

我认为这是由于网络连接可能会在特定时间后重新启动。

inbox= win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI").Folders["Inbox"]
messages = inbox.Items
for i, message in enumerate(messages):

【问题讨论】:

  • Traceback for i,枚举中的消息(消息):文件“C:\Programs\Miniconda3_64\envs\testconda\lib\site-packages\win3 nt\dynamic.py”,第 252 行,在getitem return self._get_good_object_(self._enum_.__getitem__(index)) 文件“C:\Programs\Miniconda3_64\envs\testconda\lib\site-packages\win3 nt\util.py”,行37、在 getitem 中返回 self.__GetIndex(index) 文件“C:\Programs\Miniconda3_64\envs\testconda\lib\site-packages\win3 nt\util.py”,第 53 行,在 _GetIndex 结果 = self._oleobj.Next(1) pywintypes.com_error: (-520879857, 'OLE error 0xe0f4010f', None, None)

标签: python python-3.x email outlook win32com


【解决方案1】:

遍历文件夹中的所有项目并不是一个好主意:

 for i, message in enumerate(messages):

相反,我建议获取项目子集并批量处理它们。例如,您可以使用Find/FindNextRestrict 方法获取项目的子集(根据您的条件)并处理它们。在以下文章中详细了解这些方法:

How To: Use Find and FindNext methods to retrieve Outlook mail items from a folder (C#, VB.NET)

How To: Use Restrict method to retrieve Outlook mail items from a folder

另外,您可以考虑使用 Application 类的 AdvancedSearch 方法。在 Outlook 中使用 AdvancedSearch 方法的主要好处是:

  • 搜索在另一个线程中执行。您不需要手动运行另一个线程,因为 AdvancedSearch 方法会在后台自动运行它。

  • 可以在任何位置(即超出某个文件夹的范围)搜索任何项目类型:邮件、约会、日历、便笺等。 Restrict 和 Find/FindNext 方法可以应用于特定的 Items 集合(请参阅 Outlook 中 Folder 类的 Items 属性)。

  • 完全支持 DASL 查询(自定义属性也可用于搜索)。您可以在 MSDN 中的 Filtering 文章中阅读更多相关信息。为了提高搜索性能,如果为商店启用了即时搜索,则可以使用即时搜索关键字(请参阅 Store 类的 IsInstantSearchEnabled 属性)。

  • 您可以随时使用 Search 类的 Stop 方法停止搜索过程。

【讨论】:

  • 您能帮我列出 [UnRead] =true 之类的过滤器列表吗?我需要过滤主题包含、有附件、附件名称包含、发件人等。
猜你喜欢
  • 2022-11-30
  • 2014-07-18
  • 1970-01-01
  • 2021-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多