Extractie van ingesloten objectgegevens
Soms wordt ingebedde OLE‑data weergegeven als "oleData.mso"‑bijlage door MapiAttachment en moet handmatig worden geëxtraheerd. Deze oleData.mso‑bestanden zijn Microsoft Computer Document File (MCDF)‑formaat en ondersteuning voor zulke bestanden gaat buiten de scope van Aspose.Email. Echter, Aspose.Email kan in combinatie met andere open‑source bibliotheken, zoals OpenMCDF, worden gebruikt om de inhoud van zulke bestanden te lezen en op schijf op te slaan. Aspose.Email biedt de InlineAttachmentExtractor klasse om MSO‑pakketten te enumereren uit de binaire data van oledata.mso, die vervolgens kan worden gebruikt voor het extraheren van inhoud door bibliotheken die Compound Files lezen.
Als het berichtlichaamtype HTML is (niet RTF) en er OLE‑objecten in een bericht aanwezig zijn, ontbreekt de eigenschap MapiPropertyTag.PR_ATTACH_DATA_OBJ. In dit geval wordt de informatie over OLE‑objecten bewaard in oldedata.mso.
Extractie van ingesloten objecten
Dit artikel toont hoe de inhoud uit een dergelijk bestand kan worden geëxtraheerd met 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));
}
}
}