Search code examples
pythonemailoutlookmsg

Parsing outlook .msg files with python


Looked around and couldn't find a satisfactory answer. Does anyone know how to parse .msg files from outlook with Python?

I've tried using mimetools and email.parser with no luck. Help would be greatly appreciated!


Solution

  • This works for me:

    import win32com.client
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    msg = outlook.OpenSharedItem(r"C:\test_msg.msg")
    
    print msg.SenderName
    print msg.SenderEmailAddress
    print msg.SentOn
    print msg.To
    print msg.CC
    print msg.BCC
    print msg.Subject
    print msg.Body
    
    count_attachments = msg.Attachments.Count
    if count_attachments > 0:
        for item in range(count_attachments):
            print msg.Attachments.Item(item + 1).Filename
    
    del outlook, msg
    

    Please refer to the following post regarding methods to access email addresses and not just the names (ex. "John Doe") from the To, CC and BCC properties - enter link description here