2012-05-15 69 views
4

我需要使用java來查看郵件。從這些郵件我想知道附件的名稱(如果有的話),我想知道這個消息。閱讀郵件和使用javamail的同一郵件的附件名稱

是否有可能不僅打印附件的名稱,而且打印郵件的內容?目前我正在使用下面的代碼,它只獲取附件的名稱或者(如果它們沒有)的消息內容。

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()); 
     } 
    } 

回答

0

是可能的。試試這個例子

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()); 
    } 
}