Ekstrakcja danych obiektów osadzonych
Czasami osadzone dane OLE są reprezentowane jako załącznik "oleData.mso" przez MapiAttachment i musi być wyodrębniony ręcznie. Pliki oleData.mso są w formacie Microsoft Computer Document File (MCDF) i wsparcie dla takich plików wykracza poza zakres działania Aspose.Email. Jednak Aspose.Email może być używany w połączeniu z innymi bibliotekami open‑source, takimi jak OpenMCDF, do odczytywania zawartości tych plików w celu zapisania ich na dysk. Aspose.Email zapewnia InlineAttachmentExtractor klasa enumerująca pakiety MSO z danych binarnych oledata.mso, które mogą być następnie użyte do wyodrębniania zawartości przez biblioteki odczytujące pliki Compound Files.
Jeśli typ treści wiadomości jest HTML (nie RTF) i w wiadomości znajdują się obiekty OLE, właściwość MapiPropertyTag.PR_ATTACH_DATA_OBJ jest nieobecna. W takim przypadku informacje o obiektach OLE znajdują się w pliku oldedata.mso.
Ekstrakcja obiektów osadzonych
Ten artykuł pokazuje, jak wyodrębnić zawartość takiego pliku przy użyciu 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));
}
}
}