java - How to read email contents? -


i have developed simple java application reads gmail inbox mails. able read email , subject. but, unable read email contents.

when try read it, below exception:

exception msg: com.sun.mail.imap.imapinputstream cannot cast javax.mail.multipart 

code:

import com.sun.mail.imap.imapfolder; import com.sun.mail.imap.imapstore;  import javax.mail.address; import javax.mail.bodypart; import javax.mail.message; import javax.mail.messagingexception; import javax.mail.multipart; import javax.mail.session;  import java.io.ioexception; import java.util.list; import java.util.properties;   public class read_mail {      static string from;      public static void main(string args[])     {          properties props = new properties();          props.setproperty("mail.store.protocol", "imaps");           session session = session.getdefaultinstance(props,null);           imapstore imapstore = null;           try          {              imapstore = (imapstore) session.getstore("imaps");              imapstore.connect("imap.gmail.com", "usernamexxxxx@gmail.com", "passwordxxx");               final imapfolder folder = (imapfolder) imapstore.getfolder("inbox");               folder.open(imapfolder.read_only);               message[] messages = folder.getmessages();                 (int = 0; < messages.length; i++) {                     message message = messages[i];                     system.out.println("==============================");                     system.out.println("email #" + (i + 1));                     system.out.println("subject: " + message.getsubject());                     system.out.println("from: " + message.getfrom()[0]); //                  system.out.println("text: " + message.getcontent());                      object mp = (object) message.getcontent();                      if (mp instanceof string)                       {                           string body = (string)mp;                         system.out.println("msg body : " + body);                     }                       else if (mp instanceof multipart)                       {                           multipart mpp = (multipart)mp;                         final bodypart bp = mpp.getbodypart(i);                         system.out.println("text: " +bp.getcontent().tostring());                     } else {                         system.out.println("inside else");                         multipart mpp = (multipart)mp;                         final bodypart bp = mpp.getbodypart(i);                         system.out.println("text: " +bp.getcontent().tostring());                     }                  }          }          catch(exception e)          {             system.out.println("exception msg: " + e.getmessage());           }     } } 

it goes inside else block , fires exception.

not sure you're asking.

in final else you're ignoring fact you've determined it's not multipart (it failed instanceof multipart) go ahead , try , cast multipart anyway. of course it's going fail.

now know imapinputstream possibility, add else-if class (or, better, inputstream) , process other stream. better yet, java ee docs stream returned if doesn't know data type, maybe that's final else.

if check stream, final else should generate error of sort.


Comments

Popular posts from this blog

php - failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request -

java - How to filter a backspace keyboard input -

java - Show Soft Keyboard when EditText Appears -