JavaMail кажется хорошим решением.Создайте MimeMessage
из вашего файла, найдите части тела, кодировки передачи содержимого которых вы хотите изменить, позвоните по номеру MimeBodyPart.setHeader("Content-Transfer-Encoding", "quoted-printable")
и напишите получившееся сообщение через MimeMessage.writeTo()
.
Что-то вроде этого:
Session session = Session.getInstance(new Properties());
MimeMessage mm = new MimeMessage(new FileInputStream(msgfile));
// assuming we know that it's a multipart; otherwise, check Content-Type first...
MimeMultipart multi = (MimeMultipart) mm.getContent();
for (int i = 0; i < multi.getCount(); i++) {
MimeBodyPart mbp = (MimeBodyPart) multi.getBodyPart(i);
mbp.setHeader("Content-Transfer-Encoding", "quoted-printable");
}
mm.saveChanges();
mm.writeTo(new FileOutputStream(outfile));
Обратите внимание, что MimeMessage
по умолчанию сбросит заголовок Message-ID
, когда вы внесете изменения в сообщение.Если вы не хотите этого, переопределите MimeMessage.updateMessageID()
для запрета.