【发布时间】:2021-04-01 05:19:01
【问题描述】:
我想提取封装在消息 InputStream 中的 .eml 消息的所有附件(Content-Type: message/rfc822)
InputStream is = new FileInputStream(Path);
MimeMessage mime = new MimeMessage(null, is);
private String getAttachments(p) throws
MessagingException, IOException {
if ( p.isMimeType("multipart/*")) {
Multipart multiPart = (Multipart) p.getContent();
int numberOfParts = multiPart.getCount();
for (int partCount = 0; partCount < numberOfParts; partCount++) {
MimeBodyPart part = (MimeBodyPart) multiPart.getBodyPart(partCount);
String disp = part.getDisposition();
if (disp != null && disp.equalsIgnoreCase(Part.ATTACHMENT) {
file_name = part.getFileName();
part.saveFile(Attachments_Folder + "\\" + MailFileName + "_" + file_name);
}
}
}
}
is.close()
另外,当 Content-Type 为 message/rfc822 时,part.getFileName() 为 null,因此保存的文件没有扩展名,我不知道如何获取。
【问题讨论】:
标签: jakarta-mail