Teraz, gdy pobrałem wszystkie wiadomości i przechowuję je w
Message[] temp;
Jak uzyskać listę załączników dla każdej z tych wiadomości do
List<File> attachments;
Uwaga: żadnych bibliotek innych firm, tylko JavaMail.
java
attachment
javamail
folone
źródło
źródło
Pytanie jest bardzo stare, ale może komuś pomoże. Chciałbym rozszerzyć odpowiedź Davida Rabinowitza.
nie powinien zwracać wszystkich załączników zgodnie z oczekiwaniami, ponieważ możesz mieć pocztę, w której część mieszana jest bez zdefiniowanej dyspozycji.
więc w tym przypadku możesz również sprawdzić nazwę pliku. Lubię to:
EDYTOWAĆ
istnieje cały działający kod wykorzystujący warunek opisany powyżej. Ponieważ każda część może zawierać inne części, a załącznik powinien być zagnieżdżony, do przechodzenia przez wszystkie części używana jest rekurencja
źródło
null
. Czy to jest poprawne?Pewna oszczędność czasu dla kodu, w którym zapisujesz plik załącznika:
z pocztą javax w wersji 1.4 i późniejszych, można powiedzieć
zamiast
źródło
bodyPart
należy najpierw przekonwertować naMimeBodyPart
takie jak:((MimeBodyPart) bodyPart).saveFile("/tmp/" + bodyPart.getFileName());
Możesz po prostu użyć Apache Commons Mail API MimeMessageParser - getAttachmentList () wraz z Commons IO i Commons Lang.
źródło