【问题标题】:Create Java Agent vs Calling Notes API - Louts Notes创建 Java 代理与调用 Notes API - Louts Notes
【发布时间】:2012-08-29 15:55:11
【问题描述】:

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

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

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

【问题讨论】:

  • 当您说“阅读”时,您实际上是指“处理”吗?您需要对电子邮件进行哪些处理?就个人而言,我会在 LotusScript 中编写一个代理来进行任何处理,但这是我的技能。

标签: java lotus-notes lotus-domino javaagents


【解决方案1】:

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

优点

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

缺点

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

个人意见的原因

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-03
      • 1970-01-01
      相关资源
      最近更新 更多