0
POI hsmfを使用してOutlookの.msgファイルからBillingInformationフィールドを抽出しようとしていますが、ChunkNotFoundExceptionが発生するたびにそのフィールドが抽出されます。私はフィールドにコンテンツがあることをOutlookで検証しました。Apache POIで共通プロパティを読み取る方法HSMF
public class MessageReader {
private static final int SUBJECT_CHUNK = 0x0037;
private static final int BILLING_INFORMATION_CHUNK = 0x00008535;
public static void main(String[] argv) {
try {
MAPIMessage mapiMessage = new MAPIMessage("MessageWithBillingInformation.msg");
System.out.println(mapiMessage.getStringFromChunk(new StringChunk(SUBJECT_CHUNK, true)));
System.out.println(mapiMessage.getStringFromChunk(new StringChunk(BILLING_INFORMATION_CHUNK, true)));
} catch (IOException e) {
e.printStackTrace();
} catch (ChunkNotFoundException e) {
e.printStackTrace();
}
}
}
私は情報を課金のための右のIDとしてリスト0x00008535を見つけたすべてのドキュメント: http://msdn.microsoft.com/en-us/library/cc765867.aspx
はそう、0x800AのchunkIDを使用して
チャンクがルートにあることは確かですか?他のセクションの1つの下に格納すると、チャンクが見つからない理由を説明できます。私は、org.apache.poi.poifs.dev.POIFSListerとorg.apache.poi.hsmf.dev.HSMFDumpを使って、どこに住んでいるかを正確に確認してみることをお勧めします。 – Gagravarr
HSMFDumpはそれを「Chunks」セクションの下に、名。しかし、idNameは、MAPIProperty.UNKNOWNに等しいことに基づいて(不明)としてリストします。 –
あなたはPOIFSListerでそれを見ることができますか? (チャンクIDとタイプは名前に含める必要があります) – Gagravarr