如何使用JavaMail仅下载特定类型的附件

时间:2017-11-18 08:18:35

标签: java csv email javamail email-attachments

我正在尝试使用JavaMail从Outlook邮件下载附件。

我可以下载邮件中的所有附件,但我想限制它。我想要做的只是下载CSV格式文件,如果它作为附件存在于邮件中。如果有任何其他格式的附件,请不要下载,只需忽略。

使用以下代码,我可以下载邮件中的所有附件,我尝试了一些东西,但似乎都没有正常工作。 你能帮助我如何使用JavaMail下载附加的CSV文件吗?

if (contentType.contains("multipart")) {
        // content may contain attachments
        Multipart multiPart = (Multipart) message.getContent();
        int numberOfParts = multiPart.getCount();
        for (int partCount = 0; partCount < numberOfParts; partCount++) {
            MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
            if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition())) {
                // this part is attachment
                String fileName = part.getFileName();
                attachFiles += fileName + ", ";
                part.saveFile(saveDirectory + File.separator + fileName);
            } else {
                // this part may be the message content
                messageContent = part.getContent().toString();
            }
        }

        if (attachFiles.length() > 1) {
            attachFiles = attachFiles.substring(0, attachFiles.length() - 2);
        }
    } else if (contentType.contains("text/plain") || contentType.contains("text/html")) {
        Object content = message.getContent();
        if (content != null) {
            messageContent = content.toString();
        }
    }

0 个答案:

没有答案