将内容类型“ message / rfc822”的附件转换为.msg文件

时间:2019-06-12 14:04:00

标签: java mime mime-message rfc822

我正在使用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();
    }

1 个答案:

答案 0 :(得分:1)

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

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

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