MimeMessage更改现有Mail上的sendData

时间:2017-12-04 22:15:42

标签: java javamail message mime-message

try (
            FileInputStream input = new FileInputStream(source);
            FileOutputStream output = new FileOutputStream(target);
    ) {
        byte[] emlBytes = IOUtils.toByteArray(input);
        Message mimeMessage = createMimeMessage(emlBytes);

        String date = "Wed, 16 Oct 2013 11:25:07 +0200";
        mimeMessage.setHeader("Date", date);
        System.out.println(mimeMessage.getSentDate());
        output.write(emlBytes);

    } catch (MessagingException e) {
        e.printStackTrace();

}

我必须更改现有电子邮件文件的发送日期。但是在执行之后,文件与之前的日期相同。它没有得到新的发送日期。我认为这是因为mimeMessage创建了一个新实例,但没有更改emlBytes但是我必须在output.write()中传递一个emlBytes我不知道如何传递由mimeMessage定制的emlBytes。我该怎么办?

1 个答案:

答案 0 :(得分:1)

MimeMessage不会更改数据的原始来源,因为它来自InputStream。但是您可以使用MimeMessage.writeTo方法将更新的消息写入OutputStream,例如

mimeMessage.writeTo(output);
相关问题