2017-12-21 84 views
0

私は、チャンクされたファイル名を持つメールの添付ファイルを管理する方法を理解しようとしています。私はJava 1.6でjavamail 1.5.1を使用していますが、私のコードはすべての種類のメールを管理できますが、特定のアドレスから受信したとき(私はそれらの人とは話せません)、添付ファイルを正しくインポートしません。私はメモ帳でそれらのatachments(この1の名前はextension.extensionなしのファイル名であると仮定して)を開くとき、私はこれを見つける:base64のコンテンツの前にjavamailで添付ファイルのチャンクファイル名をデコードする方法は?

Content-Type: application/octet-stream; 
    name*0="filename without extension"; name*1=.extension 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; 
    filename*0="filename without extension"; filename*1=.extension 

。私は同様の問題を検索しようとしましたが、正確なファイル名を持っていますが、分割されており、BodyPart.getFilename()メソッドはnullを返します。私はヘッダー全体を取り上げ、それについて作業することを考えていました。

答えて

0

これは、JavaMailののバージョンによってサポートされる必要があります。詳細は、javax.mail.internetのパッケージのドキュメントの "RFC 2231" を検索してください

System.setProperty("mail.mime.decodeparameters", "true"); 

https://docs.oracle.com/javaee/6/api/javax/mail/internet/package-summary.html

+0

私はサイクルが添付ファイルを見つけたときに(もdecodefilename)これらのプロパティを設定しようとしたが、」didnのgetfilenameはまだnullを返します。 – Frattak

+0

@Frattakこれはシステムのプロパティです。添付ファイルが見つかったときだけではなく、プログラムの最初にそれらを設定する必要があります。解析が完了した時点で遅すぎる可能性があります。 –

+0

RFC 2231のサポートは、JavaMail 1.5.0からデフォルトで有効にする必要があります。 JavaMail 1.5.1を使用していますか?また、現在のバージョン[JavaMail 1.6.0](https://javaee.github.io/javamail/)にアップグレードすることもできます。 –

関連する問題