8

我是 Lotus/Domino 世界的新手,并负责执行以下 Domino 任务。

访问用户的 Domino 邮箱(从中间件服务器)并从中删除某些恶意电子邮件。

附加背景:有一个外部安全工具/过程可以分析所有传入的电子邮件,并可以将电子邮件标记为恶意。如果它被标记为恶意,那么我想从相应用户的收件箱中删除这封电子邮件。

我的解决方案将部署在其自己的中间件服务器(基于 Linux)上,并将接收有关需要删除哪些电子邮件的传入通知。

我的环境中部署的 Domino 服务器是 Lotus/Domino 9。

我想最好使用 Java 来实现这个功能。

我研究并发现了访问 Domino 服务器上用户收件箱的潜在选项。

1) 我看到有一个用于 Domino 的 IBM C/C++ API 工具包。乍一看,C API 在我看来相当复杂。我还需要安装 Notes 客户端(在我的中间件服务器上),以便可以远程调用 C API?

2) 是否有可用于连接/访问 Domino 的 Java API?我发现:

这些似乎表明有一些 Java/REST API 接口,但是我不确定是否可以使用它来访问收件箱/邮箱数据。它似乎表示“日历”数据,但没有关于电子邮件/邮箱数据本身。

3)我在研究时遇到了OpenNTF Domino API 项目,它似乎有一个 Java API。我应该使用这个吗?

从外部服务器的角度访问 Domino 的最佳方式是什么?我是坚持使用 C/C++ API 还是有相对(更容易理解和使用)的 REST/Java API 可以利用?我还必须在我的中间件服务器上安装 Notes 客户端,以便我可以调用 API(C/C++ 或 Java)吗?

4

1 回答 1

15
  1. 您应该避免使用 Notes C 和 C++ API,除非:
    • 您非常非常了解 Lotus Notes 和 Domino(或者愿意很快学习很多东西)并且
    • 您确定解决问题的唯一方法是编写 Domino 服务器任务或扩展。这些 API 在非常低的级别上使用 Lotus Notes/Domino 数据。
  2. 是的,有一个 Java API。它已经存在多年了。还有一个 REST API 可以从 Java(或任何其他可以建立 HTTP 连接的语言)访问,但这仅存在几年。
    • Java API 更丰富,可以达到比 REST API 更低的级别。
    • REST API 可能足以满足您的需要,但很有可能必须专门设置服务器以使其能够访问邮箱。如果您使用 Java API,则不一定如此。
    • 使用 Java API 取决于您是否可以在安装了核心 Lotus Notes/Domino 代码的机器上运行 Java 代码。此外,您还必须调查相关的技术和许可问题。
    • 学习 Java API 的一个好方法是阅读 Bob Balaban 的书。它既旧又过时,但它确实涵盖了您所描述的目的所需了解的大部分内容。需要注意的是,它写得太早了,以至于它没有涵盖recycle()拨打电话的需要。但是他在这里发布了这些章节供免费下载。既然您知道了,recycle()我相信您可以找到有关为什么以及何时需要它的信息。
  3. OpenNTF Domino API 是官方 Java API 的开源替代品。它的构建是为了解决许多真正令人烦恼的问题(比如recycle()!),并且官方 API 的使用受限。

回复:安装 Notes 客户端,当我在第 2 点下提到核心 Lotus Notes/Domino 代码时,我提到了这一点。官方 Java API 有两种选择:

  1. 当地的:
    • 这使用核心 Notes/Domino 代码对服务器进行 Notes RPC 调用,因此您必须安装 Notes 客户端或 Domino 服务器代码的许可版本才能获取核心代码。
    • 请注意,如果您绑定到 64 位 JVM,则需要 64 位代码,这意味着您需要安装 Domino 服务器而不是 Notes 客户端,因为没有 64 位 Notes 客户端。
  2. 偏僻的:
    • 您不需要安装任何 Notes 或 Domino 代码,但它使用 CORBA/IIOP 而不是 Notes RPC 来与服务器通信。这需要在 Domino 服务器上启用 IIOP。
    • 上次我检查时,OpenNTF API 只支持“本地”模型。

我不得不提一下:由于这个原因,这几乎是题外话:

要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。

虽然通过在 StackOverflow 上搜索可以很容易地确认 Java API 的存在,但我不得不承认,找到 Domino 的基本引用更具挑战性。确实有 25 年的关于它的信息在那里,但通常是零碎的并且已经过时了。很难找到有关当今可用和最新的工具、API 和库的信息。选项真的非常有限。

因此,我认为这个问题值得回答,因为它并没有真正归结为意见。不过,我不会提出建议,因为那确实是意见。

于 2015-06-12T03:32:19.667 回答