Java 转换内容类型为“的附件”;信息/rfc822“;到.msg文件

Java 转换内容类型为“的附件”;信息/rfc822“;到.msg文件,java,mime,mime-message,rfc822,Java,Mime,Mime Message,Rfc822,我正在使用apache的mimessageparser获取mimessage。它还有另一个电子邮件类型的附件,其中包含正文内容和内联图像。我能够从mimeMessage获取电子邮件附件,并且我可以成功地将其转换为.msg文件 但是当我试图打开.msg文件时,出现了一个错误 无法打开“C:\local\1\u文件\u ds.msg”。文件可能是 已打开,或者您没有打开它的权限 有人能帮我吗?我想将电子邮件附件转换为.msg文件 下面是我正在使用的代码 List<DataSource&

我正在使用apache的mimessageparser获取mimessage。它还有另一个电子邮件类型的附件,其中包含正文内容和内联图像。我能够从mimeMessage获取电子邮件附件,并且我可以成功地将其转换为
.msg
文件

但是当我试图打开
.msg
文件时,出现了一个错误

无法打开“C:\local\1\u文件\u 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();
    }
List attachmentList=email.getAttachmentList();
int attachmentCount=1;
试一试{
用于(数据源附件:attachmentList){
if(attachment.getContentType().equals(“message/rfc822”)){
输入流输入流;
inputStream=attachment.getInputStream();
String destName=“C:\\local\\\”++attachmentCount+“++”文件“+”.msg”;
File File=新文件(destName);
copyInputStreamToFile(inputStream,文件);
attachmentCount=attachmentCount+1;
}
}
}捕获(IOE异常){
e、 printStackTrace();
}

我们收到一封来自客户的电子邮件,该客户将一些rfc822文件附加到电子邮件中。我必须将文件保存到磁盘,并将扩展名更改为eml。之后,我可以在MS Outlook中打开电子邮件,然后将其保存为MSG格式

因此,如果您只想打开rfc822附件,请使用eml扩展名将文件保存在磁盘上,并确保您有一个可以读取这些文件的电子邮件程序

如果你需要一个msg文件,你必须找到一个转换器从eml转换为msg。此外,MS Outlook还有一个API,可用于加载eml文件并将其保存到msg。这样您就可以创建自己的转换器