关于Lotus Notes
Lotus Notes/Domino 是企业级通讯、协同工作及Internet/Intranet平台;内含强大的电子邮件功能,应用于企业办公自动化。
Lotus Notes结构
总的来讲,Lotus Notes 软件是C/S(客户端/服务器)架构的:客户端称为Notes,服务器端称为Domino;另外,部分新版本还提供Web服务,可通过浏览器访问服务器端Domino。
通常说的Lotus Notes软件,其实两部分:客户端Notes和服务器端Domino。
因此,部署Lotus Notes套件包括服务器端Domino的安装和配置,客户端Notes的安装和配置,后者相对简单,在此推荐本人验证过的服务器端Domino的部署教程给小白们(domino 8.51安装全步骤(图文教程) http://www.piikee.net/read.php/413.htm)。
Lotus Notes的邮件系统
Lotus Notes软件内含的邮件系统,服务器端Domino上部署邮件服务应用;Notes 工作站与 Domino 服务器之间或两个 Domino 服务器之间通信的基础为 NRPC(Notes 远程过程调用,也称Notes 路由协议)服务。关于NRPC,请参考:
http://darewinchip.com/help/help7_admin.nsf/2e73cbb2141acefa85256b8700688cea/b898e0382c11e6b04825706f0079637f?OpenDocument
或http://www-01.ibm.com/support/docview.wss?uid=swg21602698
也就是说,缺省情况下,Domino 服务器使用 NRPC与在其它Domino服务器或Notes工作站进行电子邮件/消息的通信。另外,也可配置Domino服务器,通过标准邮件通信协议如SMTP、POP3与其他服务器进行通信。
问题:向Notes的邮件系统内部发送邮件
问题描述:如何通过编写Java程序,以Notes的邮件系统内部某个用户的身份,向Notes的邮件系统的其他内部用户发送邮件/消息?
解决思路
1.试试JavaMail
欲解决该问题,首先想到的Java的邮件服务接口JavaMail,但JavaMail只支持互联网标准邮件通信协议(mail systems based on internet standards such as MIME, SMTP, POP3, and IMAP,参加API:http://javamail.kenai.com/nonav/javadocs/index.html),显然,NRPC为IBM内部自定义的邮件通信协议,非标准的(而且貌似非公开的);因此,若Domino服务器配置为只能通过NRPC方式进行邮件通信(并不少见),则JavaMail无法解决该问题。
2. 试试客户端Notes
若是人工手动完成该过程,以内部用户身份发送邮件的操作接口是在客户端Notes,通过登录Notes客户端,完成身份校验后,即可在客户端编辑邮件并发送。因此,我们可以考虑在本地安装客户端Notes,编写Java程序与本地客户端Notes通信,并通过客户端Notes接口调用Domino发送邮件,前提是Lotus Notes 软件提供访问客户端Notes的API,事实上,该思路是可行的。
在IBM官网可以找到Java程序访问客户端Notes的资料和接口(请参考Lotus 官方文档架构师的文章:Java对Domino Objects的访问:
http://www.ibm.com/developerworks/cn/lotus/ls-java_access_pt1/index.html)
另外,文中提到第3条思路:Java程序可通过远程连接访问的 Domino 服务器,调用相关API完成邮件发送。
3. 远程连接
使用 CORBA请求 Domino服务器的IIOP服务,通过相关API,完成邮件发送。这种方式最方便,相比思路2,思路3不需要和本地的客户端Notes通信,直接和Domino服务器对话,因此不要求本地必须安装客户端Notes。
以下是文章(Java对Domino Objects的访问)针对该部分的摘要:
Java 对 Domino Objects 的访问是通过高级包 lotus.domino 进行的。根据运行时环境,这个包中的接口是在其他两个包中的一个包中实现的:
lotus.domino.local 提供了从同一计算机上的 Notes/Domino 软件进行调用。
lotus.domino.cso 提供了从通过远程连接访问的 Domino 服务器进行调用。
对于本地访问,Java 程序运行在安装有 Notes 客户机或者 Domino 服务器的计算机上。本地类由 JNI(Java Native Interface)构建来,用于访问与 JVM(Java Virtual Machine)相同的进程中的 Notes/Domino 二进制文件。
对于远程访问,Java 程序使用 CORBA(Common Object Request Broker Architecture)请求 Domino 服务器所提供的服务。远程类使用 CORBA 通过 TCP/IP 网络访问服务器。
官方发布的Domino对象的API文档:
http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=%2Fcom.ibm.designer.domino.main.doc%2FH_NOTESDOCUMENT_CLASS_JAVA.html
到此,该问题的解决办法已找到,可以根据需要选择思路2或3。
分享到:
相关推荐
标题:Lotus Notes邮件开发 描述与标签:Lotus Notes邮件开发 知识点: 1. Lotus Notes简介: Lotus Notes是一款由...开发者需要熟悉Lotus Notes的DOMINO API和Java编程语言,才能有效实现邮件自动化处理的需求。
在Java编程中,连接到IBM Lotus Domino(也称为Lotes)邮件服务器并读取邮件内容和附件是一项常见的任务。Lotus Domino是IBM提供的一款企业级的协作软件,它集成了电子邮件、日历、任务和文档管理等功能。这篇教程将...
JAVA调用IBM Notes的工具包,基本可以实现在java中操作Notes,适用的Notes版本为9.0,其它版本暂时未知,有兴趣的可以测试一下
标题"一个基于Lotus +JavaScript 实现的客户端邮件发送程序例子"表明我们将探讨如何利用JavaScript语言来构建一个功能,使用户能够在客户端直接发送邮件,而无需通过Web服务器或其他中间件。这种技术可以提高用户...
Lotus Notes是一款强大的企业级协同应用软件,由IBM公司开发,主要用于电子邮件、日历管理、任务安排、文档共享以及复杂的业务应用开发。本压缩包文件是资深Lotus Notes开发者的经验结晶,涵盖了他在长期开发过程中...
`domingo`可能是一个封装了Notes/Domino API的Java库,方便开发者更简洁地调用某些功能或者提供额外的特性。 总的来说,这个压缩包包含的资源对于想要利用Java进行Lotus Notes/Domino集成开发的程序员来说是必不可...
5. **数据库脚本**:Lotus Notes使用LotusScript或Java进行编程,这些脚本可以嵌入到表单、视图或代理中,实现更复杂的工作流逻辑。在模板中,开发者可能需要了解如何编写和调用这些脚本来控制工作流的运行。 6. **...
在Lotus Domino开发环境中,Java代理是用于执行服务器端任务的重要工具,它们可以自动化许多功能,如处理数据、发送邮件等。"lotus domnio java代理传值"这个主题主要涉及如何在Java代码中创建和使用代理,并在代理...
### Lotus Notes开发指南知识点解析 #### 一、编程概述 **6.1 在Domino中编程** - **公式**: 公式是一种具有编程语言特性的表达式,可以在其中赋值给变量并使用有限的控制逻辑。它通过调用@functions 和 @...
在Lotus Domino/Notes5.0中,Java和JavaScript可以相互配合使用,如使用Java开发服务器端的应用程序,而使用JavaScript实现客户端的交互程序。这样的组合可以使开发变得更加灵活和高效。 在开发过程中,需要注意...
最后,"利用Javamail来发送邮件"涉及到JavaMail API,这是一个开源的Java库,用于处理电子邮件。通过它,开发者可以创建、发送、接收和管理邮件。JavaMail API提供了一系列的接口和类,如Session、Message和...
Java Mail API 是一个广泛使用的Java库,用于处理电子邮件通信,包括发送、接收和管理邮件。在本场景中,我们将深入探讨如何使用Java Mail API来访问Lotus Domino邮箱系统。Lotus Domino是由IBM开发的企业级协作平台...
Lotus Domino 是一种基于Notes技术的服务器端应用程序, Lotus Domino Java 代理是指在 Domino 服务器上运行的 Java 代理程序,可以用来处理用户请求、提供数据服务等。今天,我们将讨论如何在 Lotus Domino Java ...
在本篇文章中,我们将深入探讨如何建立和调用Lotus Domino Web服务。 首先,建立Lotus Domino Web服务涉及以下几个关键步骤: 1. **设计Web服务接口**:你需要在Lotus Domino Designer中创建一个新的Notes Form...
### Lotus 数据用 Java 程序导入导出实现数据移置的方案 #### 概述 在企业级应用中,Lotus Notes 和 Domino 平台因其强大的文档管理和协作能力而被广泛采用。随着业务需求的变化和技术的发展,有时需要将存储在 ...
Lotus Notes/Domino 7 Web Services 是一种技术,允许开发者将 Lotus Domino 应用程序的功能暴露为可通过互联网访问的 Web 服务。Web 服务是一种基于标准的架构,使得应用程序能够跨平台交换数据和执行功能。在 ...
综上所述,"Domino R8+版本编写及调用webservice样例库"是一个关于如何在IBM Lotus Domino R8或其后续版本中创建和使用Web服务的教程或实践资源,涵盖了Web服务的创建、WSDL的使用、SOAP通信、调用服务的示例代码...
【标题】"Louts Notes集锦"所涵盖的知识点主要集中在Lotus Notes这一企业级协作软件上,特别是关于Java操作Domino API的实践与理论。Lotus Notes是IBM推出的一款强大的协同办公系统,它提供了电子邮件、日历、任务...
"Notes API 8.5" 是IBM Lotus Domino服务器和客户端应用程序开发的重要组成部分,它为开发者提供了与Lotus Notes和Domino系统交互的编程接口。这个API允许程序员通过编写代码来创建、读取、更新和删除Notes数据库中...
Java 访问 Domino 服务器详解 在《Java 访问 Domino 服务器》文档中,...本文档详细地介绍了如何使用 Java 语言访问 Domino 服务器,包括环境配置、Java 代码实现和调试注意事项,为开发者提供了一个完整的解决方案。