我最近编写了一个使用Exchange Web服务收听特定邮箱的Windows服务,然后当该邮箱收到新邮件时,应用程序会向完全不同的用户组发送电子邮件。我是通过订阅服务完成的,因此可以不断运行。
除了将其与Lotus Domino / Notes集成之外,我想重新创建此应用程序。我做了一些研究,并且知道Lotus C API(可能)以及Lotus Domino Designer(看起来不像我想要的)和LotusScript(可能)。
我的问题:
由于
编辑:
我忘记在收到消息时添加该消息,应用程序还会解析收到的电子邮件以提取正文和收件人,并将POST消息发送到运行REST服务的单独服务器。
以上功能是我第一次在Exchange中设置规则的原因
答案 0 :(得分:3)
收听特定邮箱,然后当该邮箱收到新邮件时,应用程序会向完全不同的用户群发送电子邮件。
有很多方法可以做到这一点。
1。邮件文件中的邮件规则。
2。在邮件文件中创建一个代理,该代理响应“当新邮件到达时”并对其进行编码(Java / LotusScript / SimpleAgent)。
3。服务器邮件规则(我没有玩过,最好在ServerAdmin上询问)。
看起来有点愚蠢,有一个单独的应用程序来监视邮箱,除非该应用程序需要在Domino之外执行其他操作。
答案 1 :(得分:2)
您可以consume web services并在Domino中使用LotusScript或Java代理发出POST请求(LotusScript/Windows或Java)。
编辑:
我假设您希望/需要将邮箱留在Exchange中。如果不是这样,请使用任何其他建议,它们都很好。但如果确实需要保留在Exchange中,则代理(无论是LotusScript还是Java)比C API更容易创建和维护。
答案 2 :(得分:1)
如果邮件文件位于Notes / Domino本身,那将是最简单的。如果是,您只需设置一个代理,该代理将在该邮件文件中收到新邮件时运行,该邮件会向其他用户生成邮件。在单独的Notes环境中进行操作将是孩子的游戏。
答案 3 :(得分:0)
基于Q& A继续寻找其他答案,我相信您需要使用Notes C API。特别是,您应该使用API的Extension Manager功能。我的部分原因是你在其中一个答案中使用了“拦截”这个词。要真正做到这一点,您需要做的是挂钩Domino服务器的路由器邮箱文件中的事件。但实际上,有两个原因:
这就是大多数合规性和安全性产品为了在交付消息之前拦截消息而倾向于做的事情。
要挂起的路由器邮箱文件总是少于用户邮件文件。因此,即使您没有在交付之前捕获邮件的技术要求,仍然更好的想法集中而不是在许多用户邮箱中的许多代理分发工作,或者在大量用户中自己挂钩交付邮箱。
这种类似的常见技术涉及一个小占用空间的DLL,它挂钩事件并将消息置于“保持”状态,然后发出另一段作为服务器任务运行的代码。这样,路由器将不会尝试处理消息的传递,直到您的代码执行它需要执行的所有操作(如果您在发布到REST服务时必须等待响应,则可能需要几个周期)。服务器任务也是使用C API编写的。 (Java也是服务器任务的一个潜在选择.IBM的服务器任务是用Java编写的,但是当我直截了当地询问是否记录并支持第3版的接口时,我总是从IBM员工那里得到空白的目光。派对使用!)此服务器任务代码可以检查消息,看它是否正在传递给您需要跟踪的其中一个用户,如果没有,则快速释放保留,然后执行其他任何需要做的事情然后最终采取它暂时搁置。
现在,这是另一个想法。您已经拥有使用Exchange Web服务的Windows服务,并且它具有您真正想要的所有逻辑。为什么复制那个逻辑? Domino支持部署您自己的Web服务,因此可能正确的方法是使用扩展管理器将消息“保持”,但是不是执行处理的服务器任务,而是创建Domino Web服务以通过数据返回到您的Windows服务,非常模仿您已经用于与Exchange通信的接口。我不熟悉Exchange Web服务,我不知道你是如何使用它来让你的Windows服务“倾听”的,所以我不确定这是否真的可以用于Domino的web服务概念。也许你可能必须“轮询”而不是倾听。无论如何,这只是一个想法。