Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javamail检查附件而不获取邮件内容_Java_Email_Jakarta Mail - Fatal编程技术网

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

使用javamail检查附件而不获取邮件内容,java,email,jakarta-mail,Java,Email,Jakarta Mail,我试图找到一些答案,甚至是一个如何做到这一点的提示,但没有运气 我想检查电子邮件是否有任何附件。但如果我使用建议的代码: Object content = bPart.getContent(); if (content instanceof String) { if (Part.ATTACHMENT.equalsIgnoreCase(bPart.getDisposition()) || StringUtils.isNotBlank(bPart.getFileName())) {

我试图找到一些答案,甚至是一个如何做到这一点的提示,但没有运气

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

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()函数,并且邮件在服务器上会自动标记为已看到(已阅读)

有谁能帮我写一个简单的函数来获取基本的电子邮件信息,并显示邮件是否有附件,而不必获取整个邮件内容?实际上,我只需要附件方面的帮助,因为我已经知道如何获取其他基本标题字段,它们不请求getContent()方法,也不将我的电子邮件标记为可见

普通电子邮件客户端是如何做到这一点的?我想一定有一些快速且简单的方法来检查电子邮件是否有附件

提前谢谢你


编辑:或者,有没有一种方法可以使用getContent()函数而不将电子邮件标记为可见的?

我不知道您从哪里得到“建议”代码,但它肯定不是来自JavaMail网站

你会想看这个的


要检查部件的MIME类型,请使用isMimeType方法。您可以在.

中找到一个示例,在这一点上,什么是MIME类型对我来说并不重要。我只是想知道有没有附件。此外,如果您实现了他们在常见问题解答中所说的内容(您在邮件中搜索附件部分),则会得到建议的代码。检查MIME类型是在不实际加载任何内容的情况下确定是否存在附件的方式。正如常见问题解答所解释的,“此邮件是否有附件?”在一般情况下不是一个简单的问题。如果你不关心不寻常的情况,那就简单一点。为了得到MIME类型的消息,我必须先得到它的内容,如他们的FAQ示例“如何在有附件的消息中找到主消息体?”。请,如果你现在能找到一种方法来读取消息(或消息部分)的MIME类型而不获取其内容,这将对我非常有帮助。现在,你不必获取消息内容来确定MIME类型。正如我所说,使用这个方法。你看过msgshow.java示例程序了吗?实际上你是对的。直到现在我才知道msgshow.java示例代码。我将测试代码,看看它是否能在更复杂的情况下正确工作,如果它能正确工作,这肯定是公认的答案。