Win32com Outlook正文属性错误

时间:2017-02-02 22:36:34

标签: python python-3.x win32com

在尝试使用以下代码检索Outlook电子邮件正文时,我得到了

com_error: (-2147467259, 'Unspecified error', None, None)

除了print(message.<properties>)属性

之外,Body中的每一个都有效
import win32com.client

outlook = win32com.client.gencache.ensureDispatch("Outlook Application").GetNamespace("MAPI")

actionItems = outlook.GetDefaultFolder(6)
messages = actionItems.Items
message = messages.GetFirst()
print(message.Subject)
print(message.Body)   -
print(message.Count)

思想?

1 个答案:

答案 0 :(得分:1)

我也遇到了与win32com对象有关的错误,这些错误试图访问不可用的值。错误,例如:

$ pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)
$ pywintypes.com_error: (-2147467259, 'Operation aborted', None, None)

取决于您要访问的不可用数据。即

win32com.client.gencache.EnsureDispatch("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(6).SenderName

将导致:

$ pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)

并且:

win32com.client.gencache.EnsureDispatch("Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(6).SenderName.Sender.GetExchangeUser().PrimarySmtpAddress

将导致:

$ pywintypes.com_error: (-2147467259, 'Operation aborted', None, None)

我发现我的错误是由于Outlook帐户中的防病毒加载项阻止了com对象访问敏感的权限数据,例如电子邮件地址,正文等。

我的解决方法:

在Outlook 2016中:转至:

文件>>选项>>加载项>“管理:COM加载项” >>转到:取消选中任何防病毒软件,在我的情况下为Symantec Endpoint。

错误消失了。希望这对任何人都有帮助。