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

时间:2015-02-21 17:14:39

标签: java email 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?

1 个答案:

答案 0 :(得分:2)

我不知道你得到了什么"建议"代码,但它肯定不是来自JavaMail网站。

您想阅读此JavaMail FAQ entry

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