2025-03-16 21:35:34 +00:00
2025-03-16 21:34:23 +00:00
2018-03-14 16:24:47 -04:00
2018-11-12 11:10:02 -05:00
2025-03-16 21:02:32 +00:00
2025-03-16 21:35:34 +00:00
2025-03-16 21:01:14 +00:00

View, export and convert .MSG email files without Outlook

  • tested on python 3.12.3
  • the source project is fork of JoshData MSG convertor
  • the console option to export to .eml is for now commented out for a time.
  • it also using TeamMsgExtractor to view content of .msg
  • I have PyQt6 application what can view (no export to eml) and save to pdf + export attachments using msg-extractor and PyQt6-Webview
  • But I am working on more light weigh version where webview is not necessary as the .exe file has about 155MB when compiled
  • Also now I am trying to use only PyQt6 lybrary to access and export the emails to PDF/HTML
  • The bellow is the first version of GUI app (no eml export) it is in: extra-options/Gui-MSG-Viewer.py`

image

Install

Install the dependencies with:

pip install -r requirements.txt

MSG-EML-Convertor.py use:

import msg-eml-convertor
# to export one message:
msg_file="emails/test1.msg" # only msg_file is required.
dest_folder = "../msg-viewer/tests" # this is just file path (no file name)
dest_file = "aaaatest.eml" # this can be just name or with path

print(convert_msg_to_eml(msg_file, dest_folder, dest_file))
# This returns string - new file location and 1 for success.
# if it fails it returns string with error and 0 for fail

# to export all msgs in folder:
src_folder="tests" # this is where to look for .msg, including subfolders
# if dst_folder missing, then it creates folder in src_folder/exported_msgs and saves it all there
dst_folder # if provided will serve as export location ( is created if not exists)

print(convert_all_msg_in_folder(src_folder, dst_folder=None))
# sample output when failed:
(0, [], {'ERR': 'No MSG files found in: /home/user/Projects/msg-viewer/testsSSS'})
# sample output when success:
(1, ['/home/user/Projects/msg-viewer/emails/The latest highlights.msg', '/home/user/Projects/msg-viewer/emails/test1.msg'], {})

Original MSG convertor use:

To use it in your application

import outlookmsgfile
eml = outlookmsgfile.load('my_email_sample.msg')

The load() function returns an EmailMessage instance.

Description
This project is to create Graphical user interface to view, convert and export .msg emails without using Outlook
Readme MIT 88 KiB
Languages
Python 100%