【发布时间】:2018-07-12 15:12:48
【问题描述】:
我的应用程序通过 javamail 1.5.6 解析许多消息,它侦听传入的消息然后存储有关它们的一些信息。
几乎所有消息都包含数字签名,所以我的应用程序也需要检索完整的 eml,即代表电子邮件的原始文件,这样应用程序用户可以始终证明这些消息的有效性。
所以,一旦我有了 javax.mail.Message,我就必须生成它的 eml,所以我这样做了:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
m.writeTo(baos);
this.originalMessage = baos.toString(StandardCharsets.UTF_8.name());
这种方法通常有效,但我有一些多部分消息,其部分如下:
这是一个 MIME 格式的多部分消息。 --------------55D0DAEBFD4BF19F87D16E72 内容类型:文本/纯文本;字符集=iso-8859-15; format=flowed Content-Transfer-Encoding: 8bit
在 allegato si notifica ai sensi e per gli effetti dell'art。 11路 1611/1993, al messaggio PEC, oltre alla Relata di Notifica e 竞赛证明conformità, --------------55D0DAEBFD4BF19F87D16E72
单词“conformità”在结果字符串中没有正确转换,它变成了“conformit�”,例如使用 MS Outlook 打开这样的 eml 会导致无效的数字签名,因此消息看起来已损坏,与原始消息不同
你有同样的想法吗?非常感谢
【问题讨论】:
标签: encoding jakarta-mail