有时,Domino 10不会解码Java下的MIME头

问题描述 投票:1回答:1

我在Domino 10.0.1服务器上运行Java 1.8程序,该程序读取POP3 / IMAP MIME消息并从中创建Notes MIME邮件文档。

一切正常,除了一些(很少)消息不转换编码的MIME标头。然后它们以这种丑陋的格式显示在Notes客户端中。

From: =?utf-8?Q?Test=20Subject?= <[email protected]>

我在所有可能的位置设置了“UTF-8”并禁用了MIME到富文本转换。

properties.setProperty("mail.mime.charset", "UTF-8");
...
boolean savedConversionFlag = dbGetSession().isConvertMime();
dbGetSession().setConvertMime(false);

什么可能导致这个?

java javamail lotus-domino mime ibm-domino
1个回答
1
投票

我刚试了一个实验。我从我的Gmail帐户向我的Notes收件箱发送了一封包含该主题中文字符的电子邮件。 Domino将Subject存储为RFC822文本项,如下所示:

Subject: =?UTF-8?B?5oiR6IO95ZCe5LiL546755KD6ICM5LiN5Lyk6Lqr5L2T44CC?=

当我在Notes中查看消息时,它会正确显示中文字符。

根据我的实验和您的评论,我认为您将编码的字符串存储在纯文本项中 - 而不是RFC822文本。区别很小,但您可以通过查看Notes中的文档属性来验证这一点。如果要将值存储在纯文本项中,则Notes不知道它应该对其进行解码。

所以,我认为你有两种选择可以在Notes中使用它:

  1. 以当前正在执行的方式将项目存储为纯文本,但首先解码该字符串。我假设JavaMail能够帮助解码步骤。
  2. 保留编码值,但将其存储为RFC822文本项。这就是Domino路由器的功能。

由于我不是100%确定如何使用Notes Java类做#2,我可能会从第一个选项开始。

© www.soinside.com 2019 - 2024. All rights reserved.