我正在使用apache的MimeMessageParser来获取MimeMessage。它具有另一个电子邮件类型附件,其中包含正文内容和内联图像。我能够从mimeMessage获取电子邮件附件,并且可以成功将其转换为.msg
文件。
但是当我尝试打开该.msg
文件时,出现错误
我们无法打开"C:\local\1_file_ds.msg"。该文件可能是 已打开,或者您没有打开它的权限。
谁能帮我解决这个问题?我想将电子邮件附件转换为.msg
文件。
以下是我正在使用的代码。
List<DataSource> attachmentList = email.getAttachmentList();
int attachmentCount = 1;
try {
for (DataSource attachment : attachmentList) {
if (attachment.getContentType().equals("message/rfc822")) {
InputStream inputStream;
inputStream = attachment.getInputStream();
String destName = "C:\local\" + +attachmentCount + "_" + "file_ds" + ".msg";
File file = new File(destName);
FileUtils.copyInputStreamToFile(inputStream, file);
attachmentCount = attachmentCount + 1;
}
}
} catch (IOException e) {
e.printStackTrace();
}
我们收到了一封来自客户的电子邮件,该客户将一些 rfc822 文件附加到电子邮件中。我不得不将文件保存到磁盘并将扩展名更改为 eml。之后,我可以在MS Outlook中打开电子邮件,然后从那里将其保存为MSG格式。
因此,如果您只想打开 rfc822 附件,请使用 eml 扩展名将文件保存在磁盘上,并确保您有一个可以读取这些文件的电子邮件程序。
如果您需要味精文件,则必须找到一个转换器才能从 eml 转换为 msg。此外,MS Outlook还有一个API,您可以使用它来加载eml文件并将其保存到msg。这样您就可以创建自己的转换器。