try: from ExtractMsg import Message except: from extract_msg import Message from email import message_from_string def extract_mail(file_path): try: msg = Message(file_path) except: print("Failed to parse the message") return email_text = msg._getStringStream("__substg1.0_007D") email = message_from_string(email_text) with open("email_data.txt", 'w') as fp: fp.write("{}".format(email.__dict__)) fp.write("\n\nEmail headers\n\n") fp.write("{}".format(email._headers)) if __name__ == "__main__": file_path = r".\msgfile_not_working_correctly.msg" extract_mail(file_path)