埋め込みオブジェクトデータの抽出

場合によっては、埋め込み OLE データが "oleData.mso" 添付ファイルとして表されます MapiAttachment 手動で抽出する必要があります。これらの oleData.mso ファイルは Microsoft Computer Document File (MCDF) 形式であり、これらのファイルのサポートは Aspose.Email の範囲を超えています。ただし、Aspose.Email は OpenMCDF などの他のオープンソース ライブラリと組み合わせて使用することで、これらのファイルの内容を読み取り、ディスクに保存することができます。Aspose.Email は以下を提供します InlineAttachmentExtractor oledata.mso のバイナリデータから 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));
        }
    }
}