Chciałbym wczytać tytuły wszystkich załączników znajdujących się na skrzynce pocztowej. Jak można upewnić się, że wiadomość ma załącznik korzystając z biblioteki JavaMail i protokołu IMAP?
Pierwszy sposób to:
if ( messages[i].getContentType().startsWith("multipart/MIXED") )
System.out.println("Wiadomosc posiada zalacznik");
i jest to najszybszy sposób jaki znam, tylko że nie mam pewności, czy jeżeli wiadomość jest typu "multipart/MIXED" to na pewno oznacza, że ma załącznik?
Bo jeżeli nie, to jest jeszcze drugi sposób:
Part p = mp.getBodyPart(k);
..........
if( Part.ATTACHMENT.equalsIgnoreCase(type))
System.out.println("Wiadomosc posiada zalacznik");
i jest to chyba pewniejsze, ale trwa dłużej (trzeba już sprawdzać części wiadomości).
Testowałem na skrzynce z 218 wiadomościami i 9 załącznikami i o ile pobierania informacji o załącznikach przy tym drugim sposobie zajmowało 40 sekund, to przy pierwszym sposobie tylko 15-17 sekund, czyli sporo szybciej, nie wiem tylko czy to pierwsze sprawdzanie jest poprawne?