Extrahování dat vložených objektů

Někdy jsou vložená data OLE reprezentována jako "oleData.mso" příloha od MapiAttachment a musí být extrahovány ručně. Tyto soubory oleData.mso jsou ve formátu Microsoft Computer Document File (MCDF) a podpora takových souborů přesahuje oblast působnosti Aspose.Email. Nicméně Aspose.Email může být použita v kombinaci s dalšími open-source knihovnami, jako je OpenMCDF, pro čtení obsahu těchto souborů a uložení na disk. Aspose.Email poskytuje the InlineAttachmentExtractor třída pro výpis MSO balíčků z binárních dat oledata.mso, která pak může být použita k extrakci obsahu knihovnami čtení Compound Files.

Pokud je typ těla zprávy HTML (ne RTF) a zpráva obsahuje OLE objekty, vlastnost MapiPropertyTag.PR_ATTACH_DATA_OBJ chybí. V takovém případě jsou informace o OLE objektech obsaženy v souboru oldedata.mso.

Extrahování vložených objektů

Tento článek ukazuje, jak extrahovat obsah z takového souboru pomocí Aspose.Email:

// The path to the File directory
String dataDir = "/data";

MapiMessage msg = MapiMessage.fromFile(dataDir + "double.msg");
for (MapiAttachment mapiAttachment : msg.getAttachments()) {
    if ("oledata.mso".equals(mapiAttachment.getLongFileName())) {
        IGenericDictionary<String, byte[]> oledata = InlineAttachmentExtractor.enumerateMsoPackage(new ByteArrayInputStream(mapiAttachment.getBinaryData()));

        for (String oleItem : oledata.getKeys()) {
            // Use binary data
            processBynaryData(oledata.get_Item(oleItem));
        }
    }
}