在尝试使用以下代码检索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)
思想?
答案 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。
错误消失了。希望这对任何人都有帮助。