Extraktion av inbäddade objekts data
Ibland representeras inbäddad OLE-data som "oleData.mso"-bilaga av MapiAttachment och måste extraheras manuellt. Dessa oleData.mso-filer är i Microsoft Computer Document File (MCDF)-format och stöd för sådana filer ligger utanför Aspose.Email:s ansvarsområde. Dock kan Aspose.Email användas i kombination med andra öppna källkods‑bibliotek, såsom OpenMCDF, för att läsa innehållet i sådana filer för att spara på disk. Aspose.Email tillhandahåller den InlineAttachmentExtractor klass för att enumerera MSO‑paket från den binära datan i oledata.mso, som sedan kan användas för att extrahera innehåll med bibliotek som läser Compound Files.
Om meddelandekroppstypen är HTML (inte RTF) och det finns OLE‑objekt i ett meddelande, saknas egenskapen MapiPropertyTag.PR_ATTACH_DATA_OBJ. I detta fall finns informationen om OLE‑objekt i oldedata.mso.
Extraktion av inbäddade objekt
Denna artikel visar hur man extraherar innehållet från en sådan fil med 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));
}
}
}