我正在使用win32com在我的Outlook中解析电子邮件,我如何解析邮件中的附件内容。
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
accounts= win32com.client.Dispatch("Outlook.Application").Session.Accounts
inbox = outlook.Folders(accounts['<Account-Name>'].DeliveryStore.DisplayName)
messages = inbox.Folders['Inbox'].Items
if len(messages) > 0:
for message2 in messages:
title = message2.Subject
if title == '<Title-of-mail>':
attachment = message2.Attachments.Item(1)
print(attachment)
print(message2.Body)
# print(attachment.Body) //Error
我想获取附件的内容,无法找到任何合适的文档。非常感谢您指导我正确方向的帮助。
答案 0 :(得分:1)
首先,您可能要使用
来检索收件箱 accounts['<Account-Name>'].DeliveryStore.GetDefaultFolder(olFolderInbox)
第二,循环浏览文件夹中的所有邮件是一个糟糕的主意-使用Items.Find/FindNext
或Items.Restrict
并限制Subject属性。
第三,Outlook不允许您直接访问附件内容,您需要将附件另存为文件(Attachment.SaveAsFile
),然后读取文件内容。如果您想直接访问附件内容,则可以使用Redemption-它公开Attachment / RDOAttachment。AsText
/ AsArray
/ AsStream
属性