Lotus notes 如何编写IBM(Lotus)Notes客户端?

Lotus notes 如何编写IBM(Lotus)Notes客户端?,lotus-notes,Lotus Notes,我想写一个统一的电子邮件和消息程序。支持IMAP、POP和SMTP都非常简单——协议都有很好的文档记录,而且很容易获得 Exchange有一个SOAPAPI文档,您可以通过它编写一个与Exchange服务器对话的Exchange客户端 我希望了解IBM(Lotus)Notes使用什么协议,以及如何编写一个可以发送和接收邮件的独立应用程序。(Standalone是其中的一个关键部分-我已经看到了关于自动化现有客户机的各种事情,但我希望编写一个新的客户机,所以我需要知道它使用什么协议。) 在这个时候

我想写一个统一的电子邮件和消息程序。支持IMAP、POP和SMTP都非常简单——协议都有很好的文档记录,而且很容易获得

Exchange有一个SOAPAPI文档,您可以通过它编写一个与Exchange服务器对话的Exchange客户端

我希望了解IBM(Lotus)Notes使用什么协议,以及如何编写一个可以发送和接收邮件的独立应用程序。(Standalone是其中的一个关键部分-我已经看到了关于自动化现有客户机的各种事情,但我希望编写一个新的客户机,所以我需要知道它使用什么协议。)


在这个时候,语言对我来说并不重要。在这个项目中,我倾向于使用Python,但我仍处于探索阶段,我试图确定任何语言中都存在哪些框架来帮助我编写这篇文章。

这是一个非常有趣的话题!我可以想到两种方法来提供面向邮件的抽象,还有两种方法允许您直接访问作为数据库的邮件文件

首先,Domino支持IMAP,这很可能是一种权宜之计。它远非完美,也不太可能改进,但它在邮件访问方面做了或多或少的工作。默认情况下,并不是每台服务器都启用了它,但管理员这样做并不十分困难或不常见

最近,添加了一个基于JSON的邮件服务,该服务声称为许多操作提供了一个非常友好的API,但并不完整——例如,它似乎没有涵盖用户的自定义视图或文件夹

根据项目的深度,还有使用Domino数据库API访问服务器的路径,这将是最灵活的,但会涉及更多的障碍

核心协议是,据我所知,它只在核心Notes库中实现。正如Stan所说,它与ID文件(服务器或用户)的存在密切相关,并将其用于加密。通过一些设置,您可以提供该库和ID,然后在其支持的平台上使用C函数和结构。此路径将为您提供最多的功能(有许多C级函数可帮助您在Notes的文档表示和MIME之间进行转换)


或者,有一个名为的远程访问协议,可用于通过Java对象使用UN/密码凭据访问远程Domino服务器。这并不是每台服务器都能启用的,但这并不罕见,而且启用起来也不难。对于边缘情况,您无法访问所有的C API功能,但这将涉及很多方面。

如果您想在Python中工作,并且愿意只使用最新版本的Lotus Domino服务器,然后我认为您应该考虑使用称为DONMIO数据服务的REST API。这里有一些。

本机笔记既没有文档记录,又加密严重;如果用户可以提供他们的Notes ID文件,我的程序可以在后台下载并设置官方Notes客户端,然后连接C工具包吗?有什么原因不起作用吗?从技术上讲,当然可以-您可以动态创建程序和数据目录以及所需的notes.ini文件。但从法律上讲,我认为这是一个艰难的决定。在这种情况下,只说“您必须先安装Notes”可能更安全。我想到了ExtLib API的一个附录:还有一个通用的Data REST API,您可以使用它来填补Mail API中的空白,但格式会略有不同,需要一些特定的DB级别配置,我想,我不建议使用C API工具包。这需要深入了解Notes体系结构的底层知识。我相信Windows上的Python可以访问COM API,这将是一个更好的选择——需要注意的是,API的某些功能在Win64上不起作用,IBM官方也不支持Win64上的API,但这些功能已经足够发挥作用,您应该能够完成大部分工作。至于在后台下载客户端,你不认为任何拥有ID文件的人都已经拥有了客户端吗?(是的,COM API也需要客户端安装,)您能详细介绍一下吗?这听起来可能比我想的要好,但是你能给我一个验证、查看消息和发送消息的最小示例吗?如果你能举例说明,我会把你的答案改成你的。编辑:嗯。需要在服务器端进行一些配置。IDK甚至管理我们的服务器,但是仍然值得一看。Jesse的回答更全面,我看到他在评论中提到了RESTAPI,所以把接受的内容放在那里吧。无论如何,我的建议只是基于API的一般知识,而不是基于经验。我没有任何可以发布的例子,更不用说最小的例子了。是的,它确实需要一些服务器端配置,但也可能需要提到其他一些路由(例如,DIIOP),因此我认为值得一提。