Recursive AI
onemailDocs

onemail docs

Everything about OneMail: getting started, the one-line reading path, MIME and mailboxes, the Outlook formats, conversion, calendars and contacts, and how each is checked. OneMail is a preview: 0.2.0-preview.2.

Outlook formats

MSG and OFTRecursiveAI.OneMail.Msg reads Outlook message files (.msg) and templates (.oft) into the MAPI model (docs/mapi.md). The container is MS-CFB, read through OneArchive's compound file reader; the content is MS-OXMSG. An OFT is an MSG whose message class is a template; the same…PST and OST messagesWhat RecursiveAI.OneMail.Pst.Messaging reads, how it treats damage, and what was checked. The structures are MS-PST 2.4 (store, folders, messages, attachments, recipients, named properties) on the lists-tables-properties layer (docs/pst-ltp.md). The same code reads ANSI…PST tables and propertiesWhat RecursiveAI.OneMail.Pst.Ltp reads, how it treats damage, and what was settled by looking at real files. The structures are MS-PST 2.3 (heap-on-node, BTree-on-Heap, property context, table context). The layer sits directly on the node database layer (docs/pst-ndb.md) and…PST node databaseWhat RecursiveAI.OneMail.Pst.Ndb reads, how it treats damage, and what was settled by looking at real files. The structures are MS-PST 2.2.2 (the NDB layer); where MS-PST is silent (4 KiB pages) the facts below come from a real Outlook 2013 OST and from the libyal PFF format…MAPI propertiesWhat RecursiveAI.OneMail.Mapi is: the in-memory form of an Outlook item (message, recipient, attachment), independent of the file it came from. MSG files fill it today (docs/msg.md); the PST/OST messaging layer fills the same types (docs/pst-messaging.md). Types and tags are…TNEF (winmail.dat)Normative notes for RecursiveAI.OneMail.Tnef, written from MS-OXTNEF (v20250520) and checked against public files. Layers:Compressed RTFRecursiveAI.OneMail.Rtf reads and writes what Outlook stores in PidTagRtfCompressed and recovers the HTML or plain text that Outlook wraps inside an RTF body. The namespace uses only the .NET base class library: it does not reference any other part of OneMail, so it can be…MAPI and MIME conversionA conversion turns an item of one model into an item of another and says what it could not carry. Nothing converts behind the caller's back: a conversion is a call, and its result has two parts.