Extração de dados de Objetos Incorporados

Às vezes, os dados OLE incorporados são representados como anexos “oleData.mso” pelo MapiAttachment e precisam ser extraídos manualmente. Esses arquivos oleData.mso estão no formato Microsoft Computer Document File (MCDF) e o suporte para tais arquivos está além da ocupação do Aspose.Email. No entanto, o Aspose.Email pode ser usado em combinação com outras bibliotecas de código aberto, como OpenMCDF, para ler o conteúdo desses arquivos para salvá-los em disco. O Aspose.Email fornece a classe InlineAttachmentExtractor para enumerar pacotes MSO a partir dos dados binários de oledata.mso, que podem então ser usados para a extração de conteúdos por bibliotecas de leitura de Arquivos Compostos.

Se o tipo de corpo da mensagem for HTML (não RTF) e houver objetos OLE em uma 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 tal arquivo usando Aspose.Email:

// O caminho para o diretório de arquivos
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()) {
            // Usar dados binários
            processBynaryData(oledata.get_Item(oleItem));
        }
    }
}