Extraction des données d\'objets incorporés

Parfois, les données OLE embarquées sont représentées comme une pièce jointe "oleData.mso" par MapiAttachment et doit être extrait manuellement. Ces fichiers oleData.mso sont au format Microsoft Computer Document File (MCDF) et la prise en charge de tels fichiers dépasse le champ d’application d’Aspose.Email. Cependant, Aspose.Email peut être utilisé en combinaison avec d’autres bibliothèques open source, comme OpenMCDF, pour lire le contenu de ces fichiers afin de les enregistrer sur le disque. Aspose.Email fournit le InlineAttachmentExtractor classe pour énumérer les packages MSO à partir des données binaires de oledata.mso, qui peuvent ensuite être utilisés pour extraire le contenu à l'aide de bibliothèques de lecture de fichiers composés.

Si le type du corps du message est HTML (et non RTF), et qu'il y a des objets OLE dans le message, la propriété MapiPropertyTag.PR_ATTACH_DATA_OBJ est absente. Dans ce cas, les informations sur les objets OLE sont contenues dans oldedata.mso.

Extraction d'objets incorporés

Cet article montre comment extraire le contenu d'un tel fichier à l'aide d'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));
        }
    }
}