仅从电子邮件中获取附件

时间:2017-04-14 17:06:06

标签: java javamail

我有一个检查电子邮件附件的代码:

".//*[text()='CardNameWebpage']"

然而,final Multipart mp = (Multipart) msg.getContent(); final int numAttachments = mp.getCount(); ... final Part part = mp.getBodyPart(attachmentNumber); 返回附件数量+1。当我遍历numAttachments时,我看到我迭代了附件和电子邮件。我只想获得附件,而不是电子邮件。

我知道that

  

附件通常(但不总是)具有内容处理附件。附件通常(但不总是)具有文件名。

当我测试它时,我看到电子邮件总是在第0个索引处,之后是附件。因此,跳过第0个索引可能是一个解决方案,但我不知道这对所有电子邮件服务器都有效。

如何才能从电子邮件中获取附件?

1 个答案:

答案 0 :(得分:0)

在简单的情况下,multipart / mixed类型的消息将第一个正文部分作为消息的主要内容,其他正文部分作为附件。第一身体部位可以是简单的文本/平原部分,或者它可以是多部分/替代或多部分/相关部分。但跳过第一个身体部位通常会做你想要的。

MIME允许更复杂的案例。您必须决定是否以及如何处理这些案例。最复杂的案例是签名和加密的邮件,但它们相对较少。