如何打印Outlook电子邮件



打开outlook电子邮件后,我需要打印正文。这是代码:

import win32com.client as client
outlook=client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox=outlook.GetDefaultFolder(6)
messages = inbox.Items
print(inbox.Items.Count)
print(inbox.Parent.Name)
for i in range(5):
message = messages.GetNext()
print(""+message.Subject, str(message.ReceivedTime))
print(message.Body)

错误是:

Traceback (most recent call last):
File "c:/Users/source/repos/Tests/pru.py", line 12, in <module>
print(message.Body)
File "C:Usersvenvsframeworkenvlibsite-packageswin32comclient__init__.py", line 583, in __getattr__
return self._ApplyTypes_(*args)
File "C:Usersvenvsframeworkenvlibsite-packageswin32comclient__init__.py", line 572, in _ApplyTypes_
self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args),
pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)

异常与访问Outlook项目的属性有关。以下代码假设您默认处理MailItem对象:

print(""+message.Subject, str(message.ReceivedTime))
print(message.Body)

但事实是,文件夹可能包含不同的项目类型,如约会、笔记、任务、文档等。因此,在访问MailItem特定属性之前,我建议检查项目的类型。例如,您可以尝试使用以下代码:

# Find only mail items and report, note, meeting etc items
if '_MailItem' in str(type(message)):
print(type(message))

如果您尝试使用代码读取SMIME消息的Body属性,也可能发生这种情况。那封电子邮件是签名/加密的吗?

请参阅阅读邮件项目。身体投掷COMException";在底层安全系统"中发生错误;了解更多信息。

相关内容

  • 没有找到相关文章

最新更新