Видобування даних вбудованих об’єктів
Іноді вбудовані OLE-дані представляються у вигляді вкладення "oleData.mso" за MapiAttachment і потребує ручного видобутку. Ці файли oleData.mso мають формат Microsoft Computer Document File (MCDF), і підтримка таких файлів виходить за межі можливостей Aspose.Email. Однак Aspose.Email можна використовувати в комбінації з іншими open-source бібліотеками, такими як OpenMCDF, для читання вмісту таких файлів і збереження їх на диск. Aspose.Email надає InlineAttachmentExtractor клас для перелічення MSO‑пакетів з бінарних даних oledata.mso, які потім можна використовувати для видобування вмісту за допомогою бібліотек читання Compound Files.
Якщо тип тіла листа — HTML (не RTF), і в листі є OLE‑об’єкти, властивість MapiPropertyTag.PR_ATTACH_DATA_OBJ відсутня. У такому випадку інформація про OLE‑об’єкти міститься у файлі oldedata.mso.
Видобування вбудованих об’єктів
У цій статті показано, як витягти вміст із такого файлу за допомогою 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));
}
}
}