прочитать сообщение и имя вложения той же почты, используя javamail

мне нужно использовать java для просмотра почты. из этих писем я хочу узнать название вложения (если оно есть) и хочу узнать сообщение.

можно ли распечатать не только название вложения, но и содержимое письма? в настоящее время я использую следующий код, который получает только имя вложения или (если их нет) содержимое сообщения.

 Message[] message = folder.getMessages();
 //Display message.
 for (int i = 0; i < message.length; i++) {

     System.out.println("------------ Message " + (i + 1) + " ------------");

     System.out.println("SentDate : " + message[i].getSentDate());
     System.out.println("From : " + message[i].getFrom()[0]);
     System.out.println("Subject : " + message[i].getSubject());


     Multipart multipart = (Multipart) message[i].getContent();

     for (int x = 0; x < multipart.getCount(); x++) {
         BodyPart bodyPart = multipart.getBodyPart(x);

         String disposition = bodyPart.getDisposition();

         if (disposition != null && (disposition.equals(BodyPart.ATTACHMENT))) {

             DataHandler handler = bodyPart.getDataHandler();
             System.out.println("Attachment : " + handler.getName());

         } else {
             System.out.println("Content: " + bodyPart.getContent());
         }
     }

person wesley    schedule 15.05.2012    source источник


Ответы (1)


Да, это возможно. Попробуйте этот пример

Multipart mp = (Multipart)message.getContent();

for (int i=0, n=multipart.getCount(); i<n; i++) {
  Part part = multipart.getBodyPart(i));

  String disposition = part.getDisposition();

  if ((disposition != null) && 
      ((disposition.equals(Part.ATTACHMENT) || 
       (disposition.equals(Part.INLINE))) {
    saveFile(part.getFileName(), part.getInputStream());
  }
}
person Subhrajyoti Majumder    schedule 15.05.2012