OST vs IsPasswordProtected


According to Microsoft: You cannot set a password on an Offline Outlook Data File (.ost).
The Change Password button doesn’t appear if you are using an Offline Outlook Data File (.ost) file.

I have an .ost file (DetectFileFormat will also return OST) which will return True for:

How IsPasswordProtected can be True for .ost file?!

ost.png (21.5 KB)



We have logged this issue as EMAILNET-40785 in our issue tracking system. You will be informed once there is any news available on it.

Sorry, I meant merge multiple pst files together, OR multiple ost files together
NOT mixing ost and pst, just for clarification :slight_smile:


Your requirement is different from your first post. Could you please share complete detail of your use case? We will then update EMAILNET-40785.

My 1st post included 1 issue and 1 question.
I’ve added a note to further clarify the 2nd ( question )
Thanks :slight_smile:


Please read the following articles about merging storage files.
Merging into a single PST
How to Merge OST File Using C#

1 Like

oops, so the files in here: dataDir & "MergePST"
will be merged to: dataDir & “Sub.pst”
right? if so, it’s destructive, how to set a new file to merge all files to it, without modifying any of the source files? Actually, I need to merge 2 or 3 pst/ost storages from stream to a single new storage as stream.

  • btw, it will fully merge storage files? I mean messages + contacts + appointments etc…?

You can use the MergeWith method to achieve your requirements. Please let us know if you face any issue using this method.

Yes, your understanding is correct.

Hey, project attached:
Bug 1. Run to get UnauthorizedAccessException, this is the bug which was fixed last month (so still not fully fixed) my source pst files are read-only (in1.pst - in2.pst)

  • Remove read-only from those 2 files under bin\Release (in1.pst - in2.pst) to continue

Bug 2. Run again to get InvalidOperationException: Failed to create the folder. The folder with same name already exists.

Bug 3: When merging Ost files, ItemMoved event won’t fire

Feature request 1: This method ( MergeWith ) only merges messages, and not other items, possible to add every Mapi item from source to target?

Feature request 2: Add SaveOptions to the MergeWith? (when creating new storage PersonalStorage.Create)

Feature request 3: Pass input files as stream? I really don’t want to pass real files as string to Aspose, a stream is my choice.

Feature request 4: Storage.ItemMoved / Storage.StorageProcessed don’t have any event to reflect the process completion via a progress bar, possible to add?

WindowsApplication1.zip (442.4 KB)


We are working over your feature requests and will get back to you soon.

1 Like

Thanks, but those bugs, confirmed? So I can rest assured we’ll have a fix eventually?


We have logged the issues as EMAILNET-40789 and features as EMAILNET-40790 in our issue tracking system. You will be informed once these issues are resolved. We apologize for your inconvenience.


We have closed the ticket EMAILNET-40785. Please check the following detail:

Still ALWAYS getting TRUE for these 2 properties against .OST files:

According to Microsoft documentation:

“There are currently two versions of the PST file format: ANSI and Unicode. The ANSI PST file format is the legacy format and SHOULD NOT be used to create new PST files. The Unicode PST file format is the currently-used format.
Office Outlook 2003, Office Outlook 2007, Outlook 2010 and Outlook 2013 can read, write, and create both ANSI and Unicode PST files. The default format is Unicode.”

Therefore, it is to be expected that IsUnicode = true for your OST files.

According to Microsoft (link shared) the .ost files cannot be password protected, so no idea why IsPasswordProtected is TRUE for them?

According to Microsoft documentation:

“Implementations MUST enforce the PST Password check if a nonzero value for PidTagPstPassword is set in the message store.”

But PidTagPstPassword property for an OST is nonzero, which is what the IsPasswordProtected = true shows.

We will fix the behavior of the IsPasswordProtected property for OST.

I think it’s not yet fixed in the 22.11, can you please confirm?

Hello, @australian.dev.nerds

Sorry for the inconvenience, but these changes didn’t make it into this release due to an oversight. Please wait for the next version.


1 Like

Hello and thanks so much,
I’m using:

If MyStorage.Format = FileFormat.Pst Then
If MyStorage.Store.IsPasswordProtected = True Then…
End If

and it won’t apply to ost storages, which cannot have passwords by nature!
But the developer might don’t know or even if know it might forget and skip the test somewhere!
So it’s a product improvement suggestion only.

Unfortunately I had 2 hard weeks which didn’t work much, now I have a few free days and will get back to Aspose full time, hopefully I can finish the remaining notes since although working with Aspose Email and you fine guys is lovely, but I’m really ashamed of the sales to ask for another temporary license renewal :slight_smile:


So, for all OSTs IsPasswordProtected should return False.
We have added this info to the ticket.
Thank you :slight_smile:

1 Like

I still didn’t read the whole MS Outlook/Exchange docs and my only reference for that note is here:

  • You cannot set a password on an Offline Outlook Data File (.ost).
  • Change Password. You will not see this option if you’ve selected an Offline Outlook Data File (.ost) file.
  • There is no way to set a password on an Offline Outlook Data File (.ost).
  • Note: The Change Password button doesn’t appear if you are using an Offline Outlook Data File (.ost) file.


Ok, Thank you for sharing the info.

1 Like