การสกัดข้อมูลวัตถุที่ฝังอยู่
บางครั้งข้อมูล OLE ฝังมักจะแสดงเป็นไฟล์แนบ "oleData.mso" โดย MapiAttachment และต้องถูกแยกออกด้วยตนเอง ไฟล์ oleData.mso เหล่านี้เป็นรูปแบบ Microsoft Computer Document File (MCDF) และการสนับสนุนไฟล์เหล่านี้เกินขอบเขตของ Aspose.Email อย่างไรก็ตาม Aspose.Email สามารถใช้ร่วมกับไลบรารีโอเพ่นซอร์สอื่น ๆ เช่น OpenMCDF เพื่ออ่านเนื้อหาของไฟล์เหล่านี้และบันทึกลงดิสก์ Aspose.Email มีให้ InlineAttachmentExtractor คลาสสำหรับenumerate แพ็กเกจ 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));
}
}
}