2012-05-15 31 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()); 
    } 
}