Search code examples
pythonoutlookmsg

How to get a table inside body of .msg file


I want to get one table that are inside the body of one .msg file with Python. I can get the body content, but I need the table separated into dataframe, for example.

I can get the body content, but I can't separe the table of the body

import win32com.client
import os

dir = r"C:\Users\Murilo\Desktop\Emails\030"

file_list = os.listdir(dir)

for file in file_list:
    if file.endswith(".msg"):
        outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
        msg = outlook.OpenSharedItem(dir + "/" + file)
        print(msg.Body)

I need the table that exists in body content, but not all body


Solution

  • If it is an HTML table, use MailItem.HTMLBody (instead of the plain text Body) and extract the table from HTML.