Sekarang saya telah mengunduh semua pesan, dan menyimpannya ke
Message[] temp;
Bagaimana cara mendapatkan daftar lampiran untuk setiap pesan tersebut
List<File> attachments;
Catatan: tidak ada lib pihak ketiga, hanya JavaMail.
java
attachment
javamail
folone
sumber
sumber
Pertanyaan sudah sangat tua, tapi mungkin itu akan membantu seseorang. Saya ingin memperluas jawaban David Rabinowitz.
tidak boleh mengembalikan semua lampiran seperti yang Anda harapkan, karena Anda dapat memiliki email di mana bagian campuran tanpa disposisi yang ditentukan.
jadi dalam kasus ini, Anda juga dapat memeriksa nama file. Seperti ini:
EDIT
ada seluruh kode kerja menggunakan kondisi yang dijelaskan di atas .. Karena setiap bagian dapat merangkum bagian lain dan lampiran harus disarangkan, rekursi digunakan untuk melintasi semua bagian
sumber
null
. Apakah itu benar?Beberapa penghemat waktu untuk kode tempat Anda menyimpan file lampiran:
dengan javax mail versi 1.4 dan setelahnya, bisa dibilang
dari pada
sumber
bodyPart
harus dikonversi dulu keMimeBodyPart
, seperti:((MimeBodyPart) bodyPart).saveFile("/tmp/" + bodyPart.getFileName());
Anda cukup menggunakan Apache Commons Mail API MimeMessageParser - getAttachmentList () bersama Commons IO dan Commons Lang.
sumber