如何从包含Content-Type:multipart / alternative的邮件下载附件;
Multipart multiPart = (Multipart) message.getContent();
int numberOfParts = multiPart.getCount();
for(int j = 0; j < numberOfParts; j++)
{
MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(j);
if (Part.ATTACHMENT.equalsIgnoreCase(part.getDisposition()))
{
part.saveFile( "C:\\Users\\Demo\\Desktop\\" + part.getFileName());
}
}
答案 0 :(得分:0)
电子邮件有各种各样可能的MIME结构。一般解决方案可能非常复杂,因为它需要考虑签名和加密的消息以及其他问题。不同的邮件程序将使用不同的MIME结构,当然一些邮件程序会在如何使用MIME时遇到错误。您需要确定需要支持的案例。
通常,multipart / alternative用于包含主要邮件正文的不同版本,因此可以跳过,因为它不包含任何附件。通常,带附件的邮件将具有顶级多部分/混合内容,第一个正文部分包含主邮件正文。第一部分可能是一个简单的文本部分,一个带有text / plain和text / html部分的multipart / alternative,或者一个multipart /与text / html部分和相关图像相关。
附件通常(但不总是)具有内容处理附件。附件通常(但不总是)具有文件名。
因此,一个好的方法是仅考虑具有顶级多部分/混合内容的消息,然后将第一部分之后的部分视为附件,无论他们是否这样说。正如我上面所说,签名和加密的消息会使这更加复杂。