Extração de Dados de Objetos Incorporados

Às vezes, os dados OLE incorporados são representados como anexo "oleData.mso" por MapiAttachment e precisa ser extraído manualmente. Estes arquivos oleData.mso estão no formato Microsoft Computer Document File (MCDF) e o suporte a tais arquivos está além do escopo do Aspose.Email. No entanto, o Aspose.Email pode ser usado em combinação com outras bibliotecas de código aberto, como o OpenMCDF, para ler o conteúdo desses arquivos para salvar em disco. O Aspose.Email fornece o InlineAttachmentExtractor classe para enumerar pacotes MSO dos dados binários de oledata.mso, que podem então ser usados para extração de conteúdo por bibliotecas de leitura de arquivos compostos.

Se o tipo do corpo da mensagem for HTML (não RTF) e houver objetos OLE na mensagem, a propriedade MapiPropertyTag.PR_ATTACH_DATA_OBJ está ausente. Nesse caso, as informações sobre os objetos OLE estão contidas em oldedata.mso.

Extração de Objetos Incorporados

Este artigo mostra como extrair o conteúdo de um arquivo desse tipo 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));
        }
    }
}