استخراج داده‌های اشیای توکار

گاهی داده‌های OLE Embedded به‌صورت پیوست "oleData.mso" توسط MapiAttachment و نیاز به استخراج دستی دارد. این فایل‌های oleData.mso فرمت Microsoft Computer Document File (MCDF) هستند و پشتیبانی از چنین فایل‌هایی فراتر از حوزه Aspose.Email است. با این حال، می‌توان از Aspose.Email به‌همراه کتابخانه‌های متن‌باز دیگر، مانند OpenMCDF، برای خواندن محتوای این فایل‌ها به منظور ذخیره بر روی دیسک استفاده کرد. Aspose.Email ارائه می‌دهد InlineAttachmentExtractor کلاسی برای شمارش بسته‌های MSO از داده‌های باینری oledata.mso که سپس می‌تواند برای استخراج محتوا توسط کتابخانه‌های خواندن فایل‌های مرکب استفاده شود.

اگر نوع بدنه پیام 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));
        }
    }
}