【问题标题】:Can't get email attachments without extension from javax.mail.message无法从 javax.mail.message 获取没有扩展名的电子邮件附件
【发布时间】:2011-09-02 06:59:22
【问题描述】:

请帮助解决我的问题。 我有一个查找电子邮件内容和附件的功能:

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。

【问题讨论】:

    标签: java gmail imap jakarta-mail


    【解决方案1】:

    我解决了这个问题。 应该是

    StringUtils.isBlank(message.getFileName())
    

    而不是

    StringUtils.isEmpty(message.getFileName())
    

    在第二行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-30
      • 2012-03-11
      • 1970-01-01
      • 2012-03-19
      • 2013-04-24
      • 1970-01-01
      • 2013-07-09
      • 1970-01-01
      相关资源
      最近更新 更多