0

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

  1. 在邮箱中创建一个 Java 代理并安排它。它将处理邮件并采取行动。\
  2. 使用使用过的 Notes API 编写单独的 Java 代码并调用 dominos 服务器来获取邮件并进行处理。

两者有什么区别?能力还是其他?

4

2 回答 2

2

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

优点

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

缺点

  1. 特定于供应商,因此便携性较差

个人观点的原因

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

于 2012-08-29T16:00:28.817 回答
0

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

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

于 2012-08-29T17:58:44.360 回答