1

POP 3メールから添付ファイルを取得しようとすると、元の添付ファイル名ではなく、winmail.datとして取得します。元のファイル名を取得するにはどうすればよいですか?

for (int i = 0; i < multipart.getCount(); i++) 
        {
            BodyPart bodyPart = multipart.getBodyPart(i);

            if(!Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition())) 
            {
                //do something
            }
            else
            {
                bodyPart.getFileName(); // here only get the winmail.dat
            }   
        }
4

1 に答える 1

2

これはExchange設定の一部であり、残念ながら、JTNEFを使用してWinMail.datから元のコンテンツを抽出する必要があります。

「JavaTNEFパッケージは、TNEFメッセージハンドラーのオープンソースコード実装であり、コマンドラインユーティリティとして使用したり、Javaベースのメールアプリケーションに統合して元のメッセージコンテンツを抽出したりできます。」

これは、JavaMailのサードパーティツールにあります。

代わりに、よりシンプルに見えるのはPOI-HMEFです

サンプル抽出:

public void extract(String winmailFilename, String directoryName) throws Exception {
   HMEFContentsExtractor ext = new HMEFContentsExtractor(new File(winmailFilename));

   File dir = new File(directoryName);
   File rtf = new File(dir, "message.rtf");
   if(! dir.exists()) {
       throw new FileNotFoundException("Output directory " + dir.getName() + " not found");
   }

   System.out.println("Extracting...");
   ext.extractMessageBody(rtf);
   ext.extractAttachments(dir);
   System.out.println("Extraction completed");
}

ここに内容を印刷するためのサンプルもあります。

于 2013-02-19T04:23:12.047 に答える