The .msf file is a mork database. The structure of mork is described in
<
https://developer.mozilla.org/en/Mork>. I don't believe there is a
document which describes the full schema of the msf databases, but this
is highlights from my memory:
The main table is the list of all messages, where each row is equivalent
in general to an nsIMsgDBHdr. Each "column" corresponds to a property of
the message header, and most of the names should be fairly
self-explanatory. A fair amount of the metadata is stored in a flags
field, the bits of which are defined in nsMsgMessageFlags, which I
believe has documentation somewhere on MDC. There is also a table for
each thread, with the meta-row containing some metadata for threads
themselves (threads can have a subset of the message flags), and each
message comprising a row in the thread table.