使用MAPI Python解析Outlook邮件中的附件正文

时间:2018-08-20 17:11:30

标签: python outlook email-attachments win32com

我正在使用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

我想获取附件的内容,无法找到任何合适的文档。非常感谢您指导我正确方向的帮助。

1 个答案:

答案 0 :(得分:1)

首先,您可能要使用

来检索收件箱

accounts['<Account-Name>'].DeliveryStore.GetDefaultFolder(olFolderInbox)

第二,循环浏览文件夹中的所有邮件是一个糟糕的主意-使用Items.Find/FindNextItems.Restrict并限制Subject属性。

第三,Outlook不允许您直接访问附件内容,您需要将附件另存为文件(Attachment.SaveAsFile),然后读取文件内容。如果您想直接访问附件内容,则可以使用Redemption-它公开Attachment / RDOAttachmentAsText / AsArray / AsStream属性