私は、電子メールの添付ファイルをチェックするコードを持っている:私はmp.getBodyPart(index)
を反復処理するときEメールから添付ファイルのみを取得します
final Multipart mp = (Multipart) msg.getContent();
final int numAttachments = mp.getCount();
...
final Part part = mp.getBodyPart(attachmentNumber);
ただし、添付ファイルのnumAttachments
戻り番号は+ 1、私がいることがわかりI添付ファイルと電子メールを繰り返し処理します。私は電子メールではなく、添付ファイルを取得したいだけです。
私が知っているthat:
添付ファイルは、通常はしますが、常に、添付ファイルのコンテンツ・処分を持っていません。添付ファイルは、通常は必ずしもそうではありませんが、ファイル名を持ちます。
私がテストすると、電子メールは常に0番目のインデックスにあり、添付ファイルがそれ以降に来ることがわかります。したがって、0番目のインデックスをスキップすることは解決策になるかもしれませんが、私はこれがすべての電子メールサーバーに有効かどうかわかりません。
電子メールから添付ファイルを取得するにはどうすればよいですか?
「添付ファイル」という概念は実際には定義されていません。ただし、マルチパートのサブタイプが定義されており、パーツの処理方法を理解するのに役立ちます。例えば、multipart/relatedとmultipart/alternativeは非常に異なっています。 – erickson
Exchangeでテストするとき、最初のインデックスは常に電子メールですが、私はそれについて確信しています。最初の部分の後の部分は、それがそうであってもそうでなくても、添付ファイルであると見なすことができます.' http: //www.oracle.com/technetwork/java/faq-135477.html#attachments私の提案を検証していますか? – kamaci