gromox-pff2mt — Utility for analysis/import of PFF/PST/OST files
gromox-pff2mt [-pst] [...] input.pst
gromox-pff2mt reads a file that conforms to the Personal Folder File (PFF) and the Offline Folder File (OFF) format and re-exports the data in a Gromox-specific mailbox transfer format to stdout for consumption by pipe by the gromox-mt2exm(8gx) program. Optionally, pff2mt can print a tree summary of the PFF. The PFF format is used in several file types:
PAB (Personal Address Book)
PST (Personal Storage Table)
OST (Offline Storage Table)
By default, pff2mt creates a new folder "Import of <xyz.pst> on <date>" within IPM_SUBTREE ("Top of Information Store") and places all PFF objects into that new subfolder.
Note that folders of non-default mailboxes are stored in a flat fashion in OST. A secretary.ost file with hierarchy like "(Boss)Inbox2021Invoices", "(Boss)Inbox2022Invoices" is flattened to "(Boss)Inbox", "(Boss)2021", "(Boss)Invoices", "Boss2022" and "(Boss)Invoices". The presence of two folders with the same name at the same level means gromox-mt2exm errors out when it tries to create a folder whose name already exists. This limits the usefulness of importing OST files.
Show properties in detail (enhances -t).
Splice objects from the PFF into existing folders. Specifically, the PFF root is mapped to the store root, and special folders (Sent Items, Deleted Items, etc.) are mapped to special folders in the store if the PFF has the necessary information. PST files have no such mapping hint for Inbox; only OST do. When --with-hidden is not selected, -s will imply --without-hidden by default to avoid polluting e.g. "QuickStep settings" (which may already have settings).
Show a diagnostic tree view of the source data as it is being read.
- --with-hidden, --without-hidden
- This option controls the import of folders that have PR_ATTR_HIDDEN=1.Default: without hidden if -s is present
- --only-obj nid
Extract just the object with the given PFF node id. This option may be specified multiple times. In the output stream, the objects will have an unspecified location given as their parent folder. (mt2exm will use the drafts folder because it is expectedly less crowded than one's inbox.)
Import of a PFF-compatible file into a Gromox mailbox via exmdb transport:
gromox-pff2mt sample.pst | gromox-mt2exm -u email@example.com
Embedded messages are treated as subitems by libpff. Luckily, the only consequence is that the tree view (-t) shows duplicate NID visits.
\_ [id=21cee4h ntyp=unknown-4h type=appointment nset=1 nent=161] \_ [id=8005h ntyp=atx type=attachment nset=1 nent=19] \_ [attachment type=i embedded_msg] \_ [id=21cf04h ntyp=unknown-4h type=appointment nset=1 \_ [id=21cf04h ntyp=unknown-4h type=appointment nset=1 nent=50] \_ [id=8025h ntyp=atx type=attachment nset=1 nent=19] \_ [attachment type=i embedded_msg] \_ [id=21cf24h ntyp=unknown-4h type=appointment nset=1 \_ [id=21cf24h ntyp=unknown-4h type=appointment nset=1 nent=49]