A standalone Python application featuring a modern graphical and dark mode UI designed to extract messages from proprietary Microsoft Outlook OST files, saving them locally as portable and standard .eml files.
This repository provides an open-source, cost-free alternative to commercial OST to PST conversion pipelines, dumping emails with their original headers and preserving folder hierarchy.
- Direct Extraction: Uses the open-source libpff C-library bindings to read the
.oststructures directly without needing Microsoft Outlook or expensive Aspose licenses. - Modern User Interface: Built entirely in Python using CustomTkinter to deliver a beautiful, responsive, thread-safe dashboard.
- Robust Exception Handling: Employs error-safe
try-exceptparsing for emails missing standard HTML structural blocks. - Long Path Safety: Automatically truncates ridiculously long message subjects to abide by the Windows
MAX_PATHcharacter limits (Errno 2).
- Python 3.10+ (Added to your System PATH)
- Microsoft C++ Build Tools
- Why? The underlying extraction library (
libpff-python) requires compilation from C-source on Windows systems because pre-built wheels aren't always provided. - Download location: Visual Studio C++ Build Tools.
- Selection: When installing, select the "Desktop development with C++" workload.
- Why? The underlying extraction library (
Because the UI architecture (tkinter) and extraction libraries rely heavily on OS-level binaries, the final standalone executable should be compiled directly on your Windows PC.
- Clone or download this directory to your Windows machine.
- Ensure Python 3 and the Microsoft C++ Build Tools are installed.
- Double-click the included
build.batscript.- This script will automatically:
- Install
pyinstaller,customtkinterandlibpff-python. - Compile the C-extensions for Python.
- Bundle the user interface and logic into a portable Windows executable.
- Install
- This script will automatically:
- When the script completes, look inside the newly generated
dist/app/folder. - Your standalone application will be located there as
OST_Extractor.exe.
- Launch
OST_Extractor.exe. - Select OST File: Click
Browse...and find your target.ostfile on your filesystem. (Always use the Browse button to ensure absolute path structures are correctly passed to the extraction engine.) - Select Output Folder: Click
Browse...to choose an empty destination folder. - Click Extract Messages.
The application will begin mirroring your original Outlook folder structure into the output directory, iterating through each email, extracting the text/headers, and saving them as individually enumerated .eml files.
An active logging progress bar will display the operation's status in the UI safely via asynchronous multithreading.
This software is released under the GNU General Public License v3.0 (GPLv3). Please see the LICENSE file for more details.