使用javamail检查附件而不获取消息内容

我试图找到某种答案,甚至暗示如何做到这一点,但是,没有运气.

我想检查电子邮件是否有任何附件.但如果我使用建议的代码:

Object content = bPart.getContent();

if (content instanceof String) {
    if (Part.ATTACHMENT.equalsIgnoreCase(bPart.getDisposition()) || StringUtils.isNotBlank(bPart.getFileName())) {
        // It's attachment
        haveAttachment = true;
    }
    else {
        // It's text or html
        emailBody = content.toString();
    }
}
else if (content instanceof InputStream) {
    if (Part.ATTACHMENT.equalsIgnoreCase(bPart.getDisposition()) || StringUtils.isNotBlank(bPart.getFileName())) {
        // It's attachment
        haveAttachment = true;
    }
}

我必须在我的电子邮件消息上使用getContent()函数,并且消息在服务器上自动标记为SEEN(读取).

任何人都可以帮我如何编写一个简单的函数来获取基本的电子邮件信息,并显示如果邮件有任何附件而不必获取整个邮件内容?实际上,我只需要帮助附件,因为我已经知道如何获取其他基本标题字段,并且他们不会请求getContent()方法,并且他们不会将我的电子邮件标记为SEEN.

常规电子邮件客户端如何做到这一点?我想必须有一些快速简单的方法来检查电子邮件是否有附件.

先感谢您!

编辑:或者,有没有办法使用getContent()函数而不将电子邮件标记为SEEN?

最佳答案 我不知道你在哪里获得了“建议”的代码,但肯定不是来自JavaMail网站.

你想读这个JavaMail FAQ entry.

要检查零件的MIME类型,请使用isMimeType方法.你可以在msgshow.java sample program找到一个例子.

点赞