Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MimeMessage更改现有邮件上的sendData_Java_Jakarta Mail_Message_Mime Message - Fatal编程技术网

Java MimeMessage更改现有邮件上的sendData

Java MimeMessage更改现有邮件上的sendData,java,jakarta-mail,message,mime-message,Java,Jakarta Mail,Message,Mime Message,} 我必须更改现有电子邮件文件的发送日期。但在执行之后,文件的日期与之前相同。它没有得到新的发送日期。我想这是因为mimeMessage创建了一个新实例,但没有更改emlBytes,但我必须在输出中传递emlBytes。write()我不知道如何传递由mimeMessage定制的emlBytes。我能做什么?MimeMessage不会更改原始数据源,因为它来自InputStream。但是您可以使用MimeMessage.writeTo方法将更新后的消息写入输出流,例如 try (

}


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

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

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.writeTo(output);