创建Java代理与调用Notes API - Lotus Notes

时间:2012-08-29 15:55:12

标签: java lotus-notes lotus-domino javaagents

我的任务是从Lotus Dominos邮箱中读取电子邮件。为了执行相同的操作,我有以下两个选项(可能还有其他选项):

  1. 在邮箱中创建Java代理并对其进行计划。它将处理邮件并采取行动。\
  2. 使用已使用的Notes API编写单独的Java代码,并调用dominos服务器来获取邮件并处理它们。
  3. 两者有什么区别?能力或其他什么?

2 个答案:

答案 0 :(得分:2)

编写Java代理以在电子邮件服务器内运行

优点

  1. 让您充分利用电子邮件服务器本身的所有弹性
  2. 可以合理保证使用电子邮件服务器启动和停止
  3. 管理的代码更少
  4. 使用电子邮件服务器更容易保留错误记录
  5. 缺点

    1. 特定供应商,因此便携性较差
    2. 个人意见的原因

      我写了一个客户端,使用IMAP定期阅读收件箱中的电子邮件,我设置了一个James Mail Server,其中包含您正在谈论的代理,以编程方式响应电子邮件地址收到的电子邮件。我倾向于选择您的选项1(在电子邮件服务器中运行的Java代理),因为它可以让您利用电子邮件服务器本身的所有弹性。可以合理地保证代码可以通过电子邮件服务器启动和停止,并且它的日志记录连接到服务器的日志记录。独立代理可以使用除初始配置之外的服务器(特别是如果您使用标准协议)。但你必须做更多工作以确保它是可操作的,你必须更加努力地进行调试(根据我自己的经验)。此外,Java代理方法往往更小,因此需要管理的代码更少。

答案 1 :(得分:0)

如果您只监控一个邮箱,那么Java代理具有明显的优势,因为它不需要任何配置数据。您只需将代理放在实际的邮箱数据库中,它就会在运行时调用AgentContext.getCurrentDatabase。如果您只监视几个maiboxes,则可以只复制代理,并且每个实例再次只读取AgentContext.getCurrentDatabase。但是,如果您有许多邮箱,那么您可能不希望在整个地方复制它。您可能只需要一个代理程序或一个独立程序 - 在这两种情况下,您都需要一些配置数据来控制它。在这种情况下,我可能会考虑独立运行它而不是代理。

但这会引发一个问题:您希望如何管理配置数据?另一个问题来自:谁将管理配置数据?如果答案是Domino服务器的管理员也将管理正在读取邮箱数据的进程的配置,那么我建议您使用您知道所有Domino管理员都熟悉的配置工具。这可能是Domino目录中列出邮箱名称的组,也可能是包含要监视的每个邮箱的配置文档的Notes数据库。如果您决定采用这种方式,那么我的偏好仍然是使用Domino代理来读取Domino服务器上的配置信息并从配置的邮箱中读取数据。但这里的优势并不那么强大。您可以在Domino中配置它,但仍然可以独立运行。只需要配置独立代码,以便它知道在哪里查找其配置数据,这可能只是一个命令行,如'java myprog dominoServerName configDatabaseName'。