Estrazione dei dati di oggetti incorporati
A volte i dati OLE incorporati sono rappresentati come allegato "oleData.mso" da MapiAttachment e deve essere estratto manualmente. Questi file oleData.mso sono nel formato Microsoft Computer Document File (MCDF) e il supporto per tali file va oltre le capacità di Aspose.Email. Tuttavia, Aspose.Email può essere usato in combinazione con altre librerie open‑source, come OpenMCDF, per leggere il contenuto di tali file e salvarlo su disco. Aspose.Email fornisce il InlineAttachmentExtractor classe per enumerare i pacchetti MSO dai dati binari di oledata.mso, che possono poi essere usati per l’estrazione dei contenuti mediante le librerie di lettura dei file composti.
Se il tipo di corpo del messaggio è HTML (non RTF) e ci sono oggetti OLE nel messaggio, la proprietà MapiPropertyTag.PR_ATTACH_DATA_OBJ è assente. In questo caso, le informazioni sugli oggetti OLE sono contenute in oldedata.mso.
Estrazione di oggetti incorporati
Questo articolo mostra come estrarre i contenuti da tale file 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));
}
}
}