我已将加密电子邮件发送到 Lotus Notes 收件箱,如果我从本地访问该电子邮件,则给出 true,如果同一电子邮件运行不同的系统,则给出 false。 是设置问题吗? 我的代码看起来像 logger.debug("此邮件已加密?"+document.isEncrypted()); 我的本地记录器正在打印 “此电子邮件已加密?是的” 如果我从其他系统运行相同的电子邮件,则其打印 “此电子邮件已加密?假” 这是文档属性。 字段名称:加密。 数据类型:文本 数据长度:1字节 序列号:1 重复项目 ID:0 字段标志:摘要
“1”
我不知道我的代码在不同地方的行为有所不同。
感谢您的帮助。
最佳答案
isEncrypted() 属性与 Encrypt 字段无关。该字段只是一个 UI 开关。 isEncrypted() 属性基于 $Seal 项,或者基于 SMIME 内容(如果消息采用 MIME 格式)。
有两个问题可能与您所看到的内容相关:
- 您是否使用两个不同的 Notes ID 文件来读取消息?
- 您在两个系统上使用相同版本的 Lotus Notes 吗?
如果您在 Notes API 中打开加密消息,并且当前的 Notes ID 文件包含用于解密该消息的正确私钥,则该消息将自动解密。这种情况发生在 LotusScrpt 和 Java API 下方的一层中,因此这些 API 发现文档未加密并返回 false。但显然 IBM 在 8.5.2 版本中改变了这一点。这是 link报告称在 8.5.2 中 isEncrypted() 将返回 true。 IBM 似乎已经修复了代码,因此即使自动解密已经完成,它现在也知道正确的答案。
当然,如果您在 Notes API 中使用不包含用于解密消息的正确私钥的 Notes ID 文件打开加密消息,则 IsEncrypted() 将始终返回 true。
关于lotus-notes - 加密电子邮件提供虚假的 Notes api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12642781/