打开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";在底层安全系统"中发生错误;了解更多信息。