Outlook 2016で保存されたメッセージからすべての添付ファイルをネイティブメッセージ形式で抽出するJavaプログラムを作成する必要があります。プログラムはインラインイメージをスキップする必要があります。また、メールの中には、マルチパート/代替の部分があり、プログラムは「最良の」コンテンツタイプを取得する必要があります。 text/html over text/plain。Apache POI-HSMFを使用してoutlook msgファイルからContent-TypeおよびContent-Dispositionを取り出す方法は?
これを行うには、メッセージのすべての部分と添付ファイルのコンテンツタイプとコンテンツの配置を調べる必要があります。 「MIMEタグ」(すなわちコンテンツ・タイプ)は一部のみ添付のために返されること、
public static void main(String[] args) throws IOException {
String mfile = "test/test2.msg";
MAPIMessage msg = new MAPIMessage(mfile);
AttachmentChunks[] attachments = msg.getAttachmentFiles();
if (attachments.length > 0) {
for (AttachmentChunks attachment : attachments) {
System.out.println("long file name = " + attachment.getAttachLongFileName());
System.out.println("content id = " + attachment.getAttachContentId());
System.out.println("mime tag = " + attachment.getAttachMimeTag());
System.out.println("embedded = " + attachment.isEmbeddedMessage());
}
}
msg.close();
}
問題であり、他のすべてのためにnullを返す:
私は次のことを試みました。コンテンツの配置は完全に欠落しているようです。
は、例えば、私はOL2016によって保存されたメールに次の出力を取得する(メールがPDFの添付ファイルとインラインロゴ画像が含まれています):
long file name = Vertretungsvollmacht Übersiedlung.pdf
content id = null
mime tag = null
embedded = false
long file name = image001.jpg
content id = [email protected]
mime tag = image/jpeg
embedded = false
は外にこれらの属性を取得する方法はありますmsgファイルか、より完全な& Apache POI-HSMF以外のライブラリでJavaで必要なものを実現する便利な方法はありますか?コンテンツ・処分(インラインまたは添付ファイル)を取得するために
これは当てはまります。実際には、私はcontent-idがHTML本文内に現れるかどうかをチェックしましたが、もちろんこのチェックはより洗練されたものでした。 –