Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unrecognised PST File version: 36 #18

Closed
ramana4029 opened this issue Apr 7, 2014 · 24 comments
Closed

Unrecognised PST File version: 36 #18

ramana4029 opened this issue Apr 7, 2014 · 24 comments

Comments

@ramana4029
Copy link

Hi,
I am trying to read one of the OST files from outlook 2013, it fails with the exception
com.pff.PSTException: Unrecognised PST File version: 36
This works fine with the PST's from older version of outlook.

Is there a way or workaround to get this working.

Thanks

@ulir
Copy link

ulir commented May 13, 2014

Hi,

we're successfully using java-libpst at our company, thanks for the work.
But I encounter exactly the same problem with a .ost file created with Outlook 2013.
So, a quick comment from you guys would be appreciated -

  • Do older versions of .ost work? (The docs say they do, but I can't test it right now ...)
  • Any plans for a fix?
  • or: Any pointers/ basic ideas how we can fix it ourselves?

Thanks very much!
Uli

@rjohnsondev
Copy link
Owner

hey guys,

If it's from outlook 2013 believe this should work, try changing https://github.com/rjohnsondev/java-libpst/blob/master/src/main/java/com/pff/PSTFile.java#L145 to allow 36 as a valid unicode PST format.

@ulir
Copy link

ulir commented May 21, 2014

Hi Richard,

thanks a lot for the pointer - will try that.

@ulir
Copy link

ulir commented May 21, 2014

OK, that's not as easy as we hoped. It looks like MS changed the format of ost files with the 2013 version. ost was never a documented format, it just "happened to be" equivalent to pst.

As far as I can see now, the fix won't be trivial. Richard, do you have any plans of spending time with this in the near future? I'll talk to my team, but very likely we won't have the resources to get the fix done.

[1] http://technet.microsoft.com/en-us/library/cc179110%28v=office.15%29.aspx
[2] http://social.msdn.microsoft.com/Forums/en-US/aee56cf3-51f8-4372-8fbc-049fdc7841f5/ost-2013-file-format-reading-the-nbt-in-ost-files-from-outlook-2013?forum=os_binaryfile

@rjohnsondev
Copy link
Owner

Boooooooo, but good to know.

Sorry mate, I'm leading a dev team full time at the moment so time is hard to come by.

@rjohnsondev
Copy link
Owner

Hey guys,

I'm having trouble getting my hands on an example OST, would you be able to help me out? You can email me at pst at rjohnson.id.au

Thanks,

Richard

@ulir
Copy link

ulir commented Jun 4, 2014

Hi Richard,

sorry to let you wait with an answer. Even with Outlook 2013 installed, it's not exactly trivial to get an ost file that doesn't contain all my company email. I'll see if I can create a dummy file tomorrow ...
-Uli

@ramana4029 ramana4029 reopened this Jun 5, 2014
@ramana4029
Copy link
Author

Hi Richard,
I was able to get example 2013 OST file for you, please find the attached.

Thanks

On Jun 4, 2014, at 4:11 PM, Ulrich Reffle [email protected] wrote:

Hi Richard,

sorry to let you wait with an answer. Even with Outlook 2013 installed, it's not exactly trivial to get an ost file that doesn't contain all my company email. I'll see if I can create a dummy file tomorrow ...
-Uli


Reply to this email directly or view it on GitHub.

@rjohnsondev
Copy link
Owner

amazing! thanks!, most likely impossible to reverse engineer, but will have a quick look.

@rjohnsondev
Copy link
Owner

Hey guys,

I've managed to figure out some of the core changes that have been made to the format:

  • A new B-Tree layout to allow for unfathomable numbers of items
  • Addition of zlib compression to nodes

I've added a first-pass at support for these things to this branch: https://github.com/rjohnsondev/java-libpst/tree/feature/2013-ost-support

Could you guys please try it out and let me know how it fares? There could be deeper implications of the change in B-Tree that I haven't thought of yet, so please scream if you find anything.

Thanks,

Richard

@ramana4029
Copy link
Author

Hi Richard,
I tested this code a little with one of our OST files and it shows up fine in the TestGui, but when I scroll for more emails it fails with unable to find node, unfortunately I cannot share you the OST which is throwing this error.

Stack Trace of the error
com.pff.PSTException: Unable to find node: 0
at com.pff.PSTFile.findBtreeItem(PSTFile.java:733)
at com.pff.PSTFile.getDescriptorIndexNode(PSTFile.java:747)
at com.pff.PSTFolder.getNextChild(PSTFolder.java:290)
at example.EmailTableModel.getMessageAtRow(TestGui.java:478)
at example.EmailTableModel.getValueAt(TestGui.java:491)

Thanks

@rjohnsondev
Copy link
Owner

Ugh, trying to get my hands on an OST to replicate, will take me some time to generate.

If possible, could you populate the test one you sent me with a bunch of emails from something like the enron PST set? http://www.edrm.net/resources/data-sets/edrm-enron-email-data-set it would save me a bunch of time.

I'm thinking it's possibly a change in the block size or similar, so would only present itself with bigger bunches of data.

@drivett
Copy link

drivett commented Aug 29, 2014

Hi Richard,

We have hit the unrecognised pst file error now that we have moved most users to Office 2013.

I have created an OST from the the first 3 pst files in the Enron dataset, trouble is it is 150MB zipped, assuming you still want this I can share or create a smaller one?

Let me know if this woudl be useful

kind regards,

Dave

@rjohnsondev
Copy link
Owner

Dave! that would be awesome, it's such a pain trying to get these to work with. It would also be handy if you could give the current branch a whirl as well and let me know if you come up against any obvious issues? https://github.com/rjohnsondev/java-libpst/tree/feature/2013-ost-support

@drivett
Copy link

drivett commented Sep 3, 2014

We will give the code a whirl later today or tomorrow and let you know how we get on.

@drivett
Copy link

drivett commented Sep 4, 2014

Hi Richard,
We gave the code a whirl and unfortunately it failed, not delved in any deeper at this point. Here is what we found.

We downloaded the latest code from the link. Using this we were able to parse pre 2013 files without any problem, so nothing has been broken as far as existing functionality is concerned.

Unfortunately it still fails when we try to parse a 2013 OST file. It fails here: (line 147 in the source PSTFile.java)

The value of fileTypeBytes[0] at that point is 36.

I tried commenting the exception throw out - in other words ignore the result of the check, but this then simply causes other failures downstream.

if (fileTypeBytes[0] != PSTFile.PST_TYPE_ANSI && fileTypeBytes[0] != PSTFile.PST_TYPE_UNICODE) {
            throw new
            PSTException("Unrecognised PST File version: "+fileTypeBytes[0]);
        }

So I have a test ost file for you which is 16MB zipped but don't know how to get it to you. Let me know what would be the easiest way.

kind regards,

Dave

@rjohnsondev
Copy link
Owner

erm, perhaps a dropbox share? My user is [email protected]

@drivett
Copy link

drivett commented Sep 4, 2014

Hi Richard,

You should have a dropbox messaged with a shared folder on its way to you.

Let me know if there are any problems,

Kind regards,

            Dave

@mjanda80
Copy link

Hi All,

I have managed to "research" and find all differences in Outlook 2013 (as far I tested it on over million of emails). I will be releasing technical note regarding the differences (maybe for free) soon.

The major changes were made in followings:

Heap-on-Node (HID)
B-Tree page (BTPAGE)
Leaf BBT Entry (BBTENTRY)
Data Blocks (compression)
Best Regards,
Matthew(.janda at hotmail dot com)

@ManishaDec11
Copy link

Hi All,

I tried with java-libpst-0.8.1.jar to read emails from OST file generated from Outlook 2013.
I see the same error "com.pff.PSTException: Unrecognised PST File version: 36"

Please let me know whether that issue got resolved or not.

I have an urgent requirement.

Any help will be highly appreciated.

Thanks

@rjohnsondev
Copy link
Owner

Hey,

Please try building the library from the 2013 support branch and see how
that works for you.

https://github.com/rjohnsondev/java-libpst/tree/feature/2013-ost-support?files=1

Thanks,

Richard
On 3 Apr 2015 8:51 am, "ManishaDec11" [email protected] wrote:

Hi All,

I tried with java-libpst-0.8.1.jar to read emails from OST file generated
from Outlook 2013.
I see the same error "com.pff.PSTException: Unrecognised PST File version:
36"

Please let me know whether that issue got resolved or not.

I have an urgent requirement.

Any help will be highly appreciated.

Thanks


Reply to this email directly or view it on GitHub
#18 (comment)
.

@ManishaDec11
Copy link

Hi Richard,

Thank you very much for the prompt response.

I prepared the library from the code and now I am able to read the .OST file,but after reading few emails it gave me below error:

com.pff.PSTException: Unable to find 50331648 is desc: true
at com.pff.PSTFile.findBtreeItem(PSTFile.java:727)
at com.pff.PSTFile.getDescriptorIndexNode(PSTFile.java:745)
at com.pff.PSTFolder.getNextChild(PSTFolder.java:290)
at main.java.com.pff.PSTFolder.getNextChild(PSTFolder.java:290)

Please help.

Thanks,
Manisha

@lfcnassif
Copy link

Seems like libpff has added info (and support) about the new OST format to the documentation back in 2013:
https://da1ba3cfdffc2404250f16d3711dfb32dcd40e96.googledrive.com/host/0B3fBvzttpiiScU9qcG5ScEZKZE0/Personal%20Folder%20File%20(PFF)%20format.pdf

@kirill-linnik
Copy link

hi guys! where you ended up with that? 0.8.1 still gives "com.pff.PSTException: Unrecognised PST File version: 36" and links you provided are all 404 :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants