Extracción de datos de objetos incrustados

A veces los datos OLE incrustados se representan como archivo adjunto "oleData.mso" por MapiAttachment y debe extraerse manualmente. Estos archivos oleData.mso son del formato Microsoft Computer Document File (MCDF) y el soporte para dichos archivos está más allá del alcance de Aspose.Email. Sin embargo, Aspose.Email puede usarse en combinación con otras bibliotecas de código abierto, como OpenMCDF, para leer el contenido de dichos archivos y guardarlo en disco. Aspose.Email proporciona el InlineAttachmentExtractor clase para enumerar paquetes MSO a partir de los datos binarios de oledata.mso, que luego pueden usarse para extraer contenidos mediante bibliotecas de lectura de archivos compuestos.

Si el tipo de cuerpo del mensaje es HTML (no RTF), y hay objetos OLE en un mensaje, la propiedad MapiPropertyTag.PR_ATTACH_DATA_OBJ está ausente. En este caso, la información sobre los objetos OLE se encuentra en oldedata.mso.

Extracción de objetos incrustados

Este artículo muestra cómo extraer el contenido de dicho archivo usando 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));
        }
    }
}