Store.SetProperty() results in "The ANSI file version editing is not implemented"

Hi, We are trying to use the following code on an ANSI pst file:

LicenseLoader.Load();
using (PersonalStorage personalStorage = PersonalStorage.FromFile(pstFile.FullName))
{
    if (personalStorage.Store.Properties.ContainsKey(MapiPropertyTag.PR_PST_PASSWORD))
    {
        var property = new MapiProperty(MapiPropertyTag.PR_PST_PASSWORD, BitConverter.GetBytes((long)0));
        personalStorage.Store.SetProperty(property);
    }
}

It errors out with the following message:

System.NotImplementedException: The ANSI file version editing is not implemented.
   at Aspose.Email.Storage.Pst.MessageStore.SetProperty(MapiProperty property)

is this expected? Can this be fixed?
We are using Version 24.2.0

We cannot share a PST at this time, but this one shared by someone else should do the trick:

https://forum.aspose.com/uploads/default/25325

Thanks & Regards
Michel

Hello @cloudficient,

Welcome to our support forum.
ANSI PST is an older format that is not fully supported by Aspose.Email because it is practically not used at present.
As a workaround, you can create a new PST and copy items from the old file to the new one.

We have existing/historical PST files though. So this is functionality that us nit going to be implemented?

Hello,

If you just need to remove the password, then we can consider this feature for ANSI PST.
But if we are talking about full support for creating and writing this PST version, this implementation would require too much time and resources, which is unacceptable for us as ANSI PST is very outdated and not in demand nowadays.

Is there a list of supported/unsupported things?

At least by removing the Password we could copy the content to an unicode PST automatically

We currently read and delete data out of PST files.

Only reading is supported for ASCII PST, everything about writing (adding, deleting, creating, modifying) is not supported.
We can consider an implementation related to password handling.

Thanks. Would be great if password handling was implemented then

@cloudficient
We have opened the following new ticket(s) in our internal issue tracking system.

Issue ID(s): EMAILNET-41323
1 Like

Hi

Is this anywhere on the roadmap?
We could still use this functionality…

Thanks

Hello @cloudficient,

Unfortunately, due to the outdated ANSI version, this task is not a high priority, which extends its implementation timeline. We have set the target version for this functionality as 24.11.

Hi, is avail on 24.11?

As a result of our discussion, we have reached the following conclusions:

We are focusing our development efforts on features that serve the Unicode PST format or provide significant value to a broader user base.
If demand for this feature increases in the future, its implementation can be reconsidered.
For now, we have the following rationale for not supporting it:

  • ANSI PST is a legacy format that has largely become obsolete. Newer applications, including Outlook, primarily use the Unicode PST format.
  • The password in PST files, whether ANSI or Unicode, only restricts access when opening the file in Microsoft Outlook. This protection is bypassed when working directly with the PST file using Aspose.Email. Therefore, removing the password has virtually no practical impact when working with the library.
  • Given the limited utility and niche demand, developing such a feature is unlikely to yield a good return on the time and resources invested.

Could you provide us with more details about the specific use cases where you need this feature? We may be able to suggest alternative solutions.

We offer a Migration service for PST Files where we regularly encounter ANSI PST Files that are password protected. We remove the password with Aspose so that we can process the file further (without Aspose)

@cloudficient,

How about converting the ANSI PST to a Unicode PST? To do this, you would need to create a new PST file using Aspose.Email and recursively transfer the messages from the original PST to the new one. This way, you can create a Unicode PST file that is not password-protected and can be processed further.