【问题标题】:Import html to lotus notes richtext using java使用java将html导入到lotus notes富文本
【发布时间】:2016-11-22 02:48:08
【问题描述】:

我想通过 DIIOP 使用 java 从一些 html 源(可能带有内联图像和附件)创建便笺邮件。我尝试使用 mime item 来做到这一点,但签名和加密需要互联网证书。所以富文本似乎是唯一的选择,但我找不到任何java API来将html导入富​​文本。在 Notes 客户端 GUI 中,可以从 text/html 导入。而且我还注意到从收件箱导出的 MIME 邮件是“由 DIIOP 服务器逐项列出的”。有什么方法可以以编程方式将 html 导入到 Lotus Notes 消息中,以便签名和加密可以与 Lotus Notes 内部证书一起使用。

感谢和问候,

【问题讨论】:

  • 您确定 MIME 正文是导致它需要 Internet 证书的原因吗?即,您是在地址字段中输入完全可区分的用户名,还是在 Internet 电子邮件地址中输入?
  • 我只在地址字段中输入了完全可区分的用户名,没有互联网电子邮件地址。但似乎每当我使用 MIME 并签名和/或加密时,我都会得到 NotesException。 NotesException: Notes 错误: 未找到加密密钥。
  • 好的。我现在知道了。请参阅下面的答案。

标签: java lotus-notes lotus-domino sign richtext


【解决方案1】:

最终找到了一个解决方案,虽然有点老套。使用 MIME 创建一个文档,然后保存到数据库,然后关闭会话。打开一个新的会话,得到保存的文档,它被Domino Server 转换为richtext,但是有一些MIME 的痕迹,使用DXLExporter 导出到DXL。在导出的 DXL 中,删除项目“MIME_Version”和“$MIMETrack”。除了 jpg 和 gif(png 和 gif)类型的内联图像没有正确处理,必须在 XML DOM 上稍微修复一下,然后使用 DXLImporter 导入固定的 DXL,这样你就有了一个转换后的 Richtext 文档,而不是就像您在 Note Client GUI 中导入 HTML 文件所获得的一样。总比没有好。

【讨论】:

    【解决方案2】:

    您应该能够通过 DIIOP 使用 Java 进行加密,但您不能以这种方式进行签名。

    您需要私钥才能签署消息或文档。低级 Notes API 期望私钥位于会话的当前 ID 文件中。当您使用 DIIOP 时。您的 Java 代码在本地运行,它无权访问您的用户 ID 文件。低级 Notes API 不在运行 Java 的同一台机器上运行。通常在运行 Java 代码的代码上甚至没有安装 Notes 或 Domino,因此 JVM 甚至无法使用低级 API 的代码。

    在 DIIOP 配置中,低级 Notes API 代码在 Domino 服务器上运行。它唯一可以访问的 ID 文件是服务器 ID 文件,它不允许您使用服务器的私钥进行签名。

    【讨论】:

    • 但是,如果我只通过 DIIOP 使用 Java 使用富文本项目创建文档,我可以签名和/或加密,但 MIME 项目不能。我尝试将一些互联网证书导入 Lotus 客户端,然后从本地发送 mime 文档,我注意到该文档是使用互联网证书签名的。但我们不打算使用 Internet 电子邮件证书在 Notes 中发送邮件。
    • 我无法解释,但我有一个猜测。如果不从 ID 文件中读取私钥,您将无法签名。我 100% 确定这一点。也许对于富文本,Java API 忽略了这个问题——即它不签名,但也不抛出错误。但是使用 MIME,Java API 中的代码路径是不同的,它会引发错误。这是我的最佳猜测。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多