2017-04-24 16 views
-1

私は電子メールをダウンロードして、emlファイルとして保存し、それぞれの添付ファイルをjavaとews managed APIを使って別々のファイルとして保存する必要があります。インターネット上でいくつかの検索をした後、私はJavaコードを書いている、それは私が欲しいことをしているようだ。しかし、私はこのアプローチでは、各添付ファイルがリモートから2回ダウンロードされると思うので、その効率について疑問を抱いています。そのコメントは正しいのですか?それがもっと効率的なやり方をするのでしょうか?添付ファイル付きメールをewsでダウンロードする

 item.load(new PropertySet(ItemSchema.MimeContent,ItemSchema.Attachments)); 
     MimeContent mc = item.getMimeContent(); 
     try(FileOutputStream fs = new FileOutputStream("d:\\emailtmp\\"+ Utils.cleanFileName(item.getId().getUniqueId())+".eml");){ 
      fs.write(mc.getContent()); 
     } 
     AttachmentCollection attachments = item.getAttachments(); 
     if(attachments == null) 
      return ; 
     for(Attachment a : attachments){ 
      if (a instanceof FileAttachment){ 
       try(FileOutputStream stream = new FileOutputStream("d:\\emailtmp\\"+Utils.cleanFileName(((FileAttachment) a).getName()));){ 
        FileAttachment fileAttachment = (FileAttachment)a; 
        fileAttachment.load(stream); 
       } 
      } 
     } 

PS:EWSマネージAPIを使用した2.0-Java8

答えて

1

あなたは、あなたがそれをダウンロードしたら、MIMEコンテンツを再処理することができるはず、それをより効率的にしたいので、もし添付ファイルがMIMEコンテンツになりますMimeパーサーで添付ファイルを抽出します。また、コードではネストされた添付ファイル(添付ファイルの添付ファイルなど)には対応しません。

+0

回答ありがとうございました。私は質問はしませんでしたが、添付された電子メールとその添付ファイルは処理されません。これがコードがそれらを無視する理由です。ところで、リンクのサンプルコード(ローカル格納オブジェクトからmimecontentを読み込むためのサンプルコード)を投稿できますか? – cacert

+0

あなたが快適なMimeライブラリを探して、あなたの言語で作業してください。例えば、http://stackoverflow.com/questions/19541792/how-to-parse-raw-mime-content-in-java –

+0

あなたはメールをダウンロードすることを意味しますEWSとjavaメールでコンテンツを解析する私はEWS APIのソリューションを探していました。 – cacert

関連する問題