I am afraid that there is no answer that will give you the right solution for this question.
MORK is a text database containing address book data files ( .mab ) and mail folder summaries ( .msf ).
The format, written by David McCusker, is a combination of various numerical namespaces and is undocumented and does not seem to be developed / maintained / supported anymore. The only way you could handle this is to redesign it in parallel with viewing the source code using this format.
However, there were experienced people who tried to write parsers for this format without any success. According to Wikipedia, former Netscape engineer Jamie Zawinski said about this format:
... the single most brain-damaged file format I've ever seen my nineteen-year career
The following is indicated on this page :
In short, let me consider sins (Carrot):
- Two different numerical namespaces that overlap.
- He cannot decide which syntax to quote characters to use: Backslash? Dollar sign encoding?
- Sometimes C ++ line comments are allowed, but sometimes // these are just a couple of characters in the URL.
- This applies to all this serious compression effort (two different hash tables for string interpolation), and then writes Unicode strings without using UTF-8: writes unpacked wchar_t characters!
- Even worse, it encodes each wchar_t in hexadecimal with 3-byte encoding, i.e. the file size will be 3x or 6x (depending on whether whchar_t is 2 bytes or 4 bytes.)
- It disguises itself as a “text” file format, when in fact it is just another binary-blob file, except that it represents all its magic number in ASCII. It is not human readable, it is not manually edited, so the only advantage is that it uses short lines and does not use binary characters, so this makes the file larger. oh wait, my mistake, it’s not really profitable. "
Frustration shines here, and this is obviously not an easy task.
Therefore, apparently, there are no syntactic agents outside of Mozilla products that can actually parse this format.
In the past, I completely changed complex file formats and knew that this could be done with patience and the right amount of energy.
Unfortunately, this is your only option. A good place to start would be to take a look at the source code for Thunderbird .
I know that this does not give you the right solution, but I think that this is the only answer to the question, given the circumstances of this format.
And, of course, you can always look into the extension API to find out if it allows you to access the data you need in a more structured way than directly processing the file format.