Skip to content

Repository files navigation

FreePST

A portable, read-only Windows tool for browsing Outlook PST and OST files without Outlook.

FreePST opens a data file and shows it in an Outlook-style layout. The folder tree is on the left and the selected folder's items are listed on the right, with columns such as From, To, Subject, Sent, Received and Size. It lists items only; it doesn't open or display their content. It never writes to the file.

Using it

  1. Copy the FreePST-win-x64 folder (or unzip FreePST-win-x64.zip) anywhere and run FreePST.exe. Nothing needs to be installed.
  2. Choose File > Open… (Ctrl+O) and pick a .pst or .ost file. Files you've opened before are listed under File > Open recent.
  3. Expand the tree and select a folder. All folders are shown, including hidden and system ones, each with its item count.
  4. Sort by clicking a column header, and drag header edges to resize. Type in the filter box to narrow the current folder by subject, sender, recipients, location or name.

Columns depend on the folder type:

Folder type Columns
Mail and other Importance, attachment, From, To, Cc, Subject, Sent, Received, Size, Type
Calendar Attachment, Subject, Location, Start, End, Organizer, Recurring, Size
Contacts Full name, Email, Company, Job title, Business phone, Mobile
Tasks Importance, Subject, Due, Status, % complete, Modified

Things to know

  • An OST that Outlook is using can't be opened. Outlook locks it. Close Outlook, or copy the OST elsewhere and open the copy.
  • Large folders load in batches. Rows appear as they're read, with progress next to the filter box. Selecting another folder cancels the current load.
  • Some columns fill in after the list appears. A column that isn't in the folder's own index is read from each item afterwards, with "Reading item details…" showing progress. For Outlook 2013+ OSTs, text columns are also re-checked against each item, because those files' folder indexes have been seen holding stale values such as the wrong sender name.
  • Supported formats: ANSI PST (Outlook 97–2002), Unicode PST/OST, and Outlook 2013+ OST (4K pages, compressed).

Building

You need the .NET 10 SDK. Visual Studio isn't needed.

dotnet build                  # debug build; run src\FreePST\bin\Debug\...\win-x64\FreePST.exe
dotnet test                   # unit tests
.\build.ps1                   # tests, then a self-contained publish to artifacts\publish\win-x64 plus a zip
.\build.ps1 -Version 0.2.0    # the same, stamped 0.2.0 and zipped as FreePST-0.2.0-win-x64.zip
.\build.ps1 -Runtime win-arm64

The default version for local builds is set in Directory.Build.props.

Testing against real files

tests/FreePST.Core.Tests/SampleFileTests.cs opens every .pst/.ost in the folder named by FREEPST_TEST_FILES. For each file it walks every folder, lists every item and fills in the per-item columns. It fails if any folder's listed count differs from its stored item count. Sample files are never committed.

$env:FREEPST_TEST_FILES = 'D:\pst-samples'
dotnet test --logger "console;verbosity=detailed"   # detailed output prints each folder, timings and a sample row

tests\get-sample-files.ps1 -Destination <folder> downloads three small public sample files to test with: two PSTs and an Outlook 2013 OST, about 17 MB in all. CI uses the same files.

CI and releases

GitHub Actions (.github/workflows):

  • CI runs on every push to main and every pull request. It runs the tests, including against the sample files, then publishes the app. The published app is attached to the run for 14 days, so you can download and try any commit's build.
  • Release runs when a version tag is pushed. It tests and publishes that version, then creates a GitHub Release with the zip attached and notes generated from the commits. A tag with a suffix, such as v0.2.0-beta.1, is marked as a pre-release.
git tag v0.2.0
git push origin v0.2.0

Releases aren't code-signed yet, so Windows SmartScreen warns the first time the app is run.

Layout

Path Contents
src/FreePST The WinUI 3 app (Windows App SDK 2.5, unpackaged, self-contained)
src/FreePST.Core UI-independent logic: opening files, folder listing, column definitions, recent files
src/XstReader.Api Vendored PST/OST reader (XstReader, Ms-PL). See VENDORED.md; local changes are in git history
tests/FreePST.Core.Tests xUnit tests for Core

Licences

FreePST is licensed under the Apache License 2.0: see LICENSE.md and NOTICE.md. The vendored XstReader source in src/XstReader.Api keeps its own Ms-PL licence. For bundled components, see THIRD-PARTY-NOTICES.md.

About

A Windows application to browse Outlook PST & OST files

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages