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

标签 java email jakarta-mail

我试图找到某种答案,甚至是有关如何执行此操作的提示,但没有成功。

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

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(已读)。

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

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

提前致谢!

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

最佳答案

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

你会想读这个 JavaMail FAQ entry .

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

关于java - 使用javamail检查附件而不获取邮件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28648648/

相关文章:

java - 维护 JPA 实体

java - 如何使 itemStateChange 方法在按下 JButton 时运行?

java - 为什么我无法将 Base64 编码图像插入电子邮件 HTML Velocity 模板?

c# - ASP MVC : E-mail Verification (Encrypting the activation link)

java - 解析 .p7m 文件时缺少附件

java - 为什么要在 Dropwizard Metrics 中使用 CachedGauage?

找不到类型的 java.util.Date bean

python - 试图欺骗电子邮件地址

android - 无法从我的主机发送邮件

ssl - sun.security.ssl.SSLSessionImpl payara 5