2011-09-02 18 views
0

私の問題を解決してください。 私は電子メールの内容と添付ファイルを見つける機能を持っている:javax.mail.messageの拡張子を持たない電子メールの添付ファイルを取得できません

public void setContentAndAttachmentsList(GMailEmail gMailEmail, Part message) throws MessagingException, IOException { 
    if (message.isMimeType("text/*") && StringUtils.isEmpty(message.getFileName())) { 
     gMailEmail.setContent(message.getContent().toString()); 
     log.debug("Found text data. Set as body: " + message.getContent().toString()); 
    } else if (message.isMimeType(MULTIPART_MIME_TYPE)) { 
     Multipart multipartMessage = (Multipart) message.getContent(); 
     for (int i = 0; i < multipartMessage.getCount(); i++) { 
      BodyPart messagePart = multipartMessage.getBodyPart(i); 
      setContentAndAttachmentsList(gMailEmail, messagePart); 
     } 
    } else if (StringUtils.isNotBlank(message.getFileName())) { 
     MailAttachment attachment = new MailAttachment(); 
     attachment.setContentType(message.getContentType()); 
     log.debug("Attachment content type: " + message.getContentType()); 
     attachment.setName(message.getFileName()); 
     log.debug("Attachment file name: " + message.getFileName()); 
     if (message.getContent() instanceof InputStream) { 
      attachment.setInputStream((InputStream) message.getContent()); 
     } else { 
      attachment.setInputStream(IOUtils.toInputStream(message.getContent().toString(), UTF_8)); 
     } 
     List<MailAttachment> attachmentsList = gMailEmail.getAttachmentsList(); 
     attachmentsList.add(attachment); 
     gMailEmail.setAttachmentsList(attachmentsList); 
     log.debug("Found attachment" + message.getFileName()); 
    } 
} 

GMailEmailはPOJOです。 メールに添付ファイルがある場合は、それは完全に機能します。しかし、添付ファイルに拡張子がない場合、message.getFileName()は単にnullを返します。

答えて

0

私はこの問題を解決しました。 これは、2行目の

StringUtils.isBlank(message.getFileName()) 

代わりの

StringUtils.isEmpty(message.getFileName()) 

でなければなりません。

関連する問題