1

我已经向 Lotus notes 收件箱发送了一封加密的电子邮件,如果我从本地访问该电子邮件,则为真,如果同一电子邮件运行不同的系统,则为假。是设置问题吗?我的代码看起来像 logger.debug("This Email is encrypted? "+document.isEncrypted()); 我的本地记录器正在打印“此电子邮件已加密?是的”如果我在其他系统中运行相同的电子邮件,它会打印“此电子邮件已加密?错误”这是文档属性。字段名称:加密。数据类型:文本数据长度:1 字节序列号:1 重复项 ID:0 字段标志:摘要

“1”

我不知道我的代码在不同的地方表现不同。

谢谢您的帮助。

4

1 回答 1

3

isEncrypted() 属性与 Encrypt 字段无关。该字段只是一个 UI 开关。isEncrypted() 属性基于 $Seal 项目,如果消息为 MIME 格式,则基于 SMIME 内容。

有两个问题可能与您所看到的有关:

  • 您是否使用两个不同的 Notes ID 文件来阅读消息?
  • 您是否在两个系统上使用相同版本的 Lotus Notes?

如果您在 Notes API 中打开一条加密消息,并且您当前的 Notes ID 文件包含用于解密该消息的正确私钥,那么该消息将自动解密。这发生在 LotusScrpt 和 Java API 的下一层,因此这些 API 看到文档未加密并返回 false。但显然 IBM 在 8.5.2 版本中改变了这一点。这是一个链接,报告在 8.5.2 中 isEncrypted() 将返回 true。似乎 IBM 已经修复了代码,因此即使自动解密已经完成,它现在也知道正确的答案。

当然,如果您在 Notes API 中使用不包含用于解密消息的正确私钥的 Notes ID 文件打开加密消息,IsEncrypted() 将始终返回 true。

于 2012-09-28T21:19:25.690 回答