Avatar billede nayze Nybegynder
12. december 2005 - 15:24 Der er 2 kommentarer og
1 løsning

Mere Javamail mailfetching

Som opfølger på mit spørgsmål fra sidste uge, har jeg nu fået et nyt problem.

Sender jeg en mail fra outlook til min test-konto, kan jeg fint fetche og læse body med ((MimeMessage)msgs[i]).getContent());

Sender jeg derimod en mail via Javamail-APIet over samme Exchange-server som min outlook bruger, kan jeg ikke bruge "((MimeMessage)msgs[i]).getContent());", da jeg får en javax.mail.internet.MimeMultipart@4b4333 tilbage.
Bruger jeg derimod (((MimeMultipart)((MimeMessage)msgs[i]).getContent()).getBodyPart(0)).getContent(); kan jeg fint læse body på de mails, men tilgengæld virker denne metode ikke på mails sendt fra outlook, da jeg får en exception.

Forvirret? Ja jeg er.


Lige nu gør jeg således for at omgå problemet:

for(int i = 0; i < msgs.length; i++) {
    try {
        System.out.println((((MimeMultipart)((MimeMessage)msgs[i]).getContent()).getBodyPart(0)).getContent());
    } catch (Exception e) {
        System.out.println(((MimeMessage)msgs[i]).getContent());
    } finally {
        msgs[i].setFlag(Flags.Flag.DELETED, true);
    }
}

Er der en nemmere/smartere måde at gøre det på?
Avatar billede arne_v Ekspert
12. december 2005 - 15:34 #1
du er nødt til at teste på hvad du får ud med getContent

instanceof operatorern var en oplagt mulighed
Avatar billede nayze Nybegynder
12. december 2005 - 15:48 #2
Ah ja, naturligvis. Kan jeg forvente at få andre ting ud af getContent end MimeMultipart eller MimeMessage?

Smid et svar, og der er point.
Avatar billede arne_v Ekspert
12. december 2005 - 15:52 #3
ved jeg ikke - lav en else med en fornuftig exception

og svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester