Isode Messaging X.400 APIs
Summary: Isode provides a number of APIs which allow integrators and product developers to build components that access the Isode Messaging server products or other products supporting the same protocols.Isode R19.0v18 Messaging X.400 APIs
Isode provide a number of Messaging APIs which enable integrators to develop complementary components to work with the Isode Server products. This page describes the APIs available to writers of Messaging User Agents (UAs).
X.400 API language support
API | C | JAVA | TCL |
X.400 Client API | X | X | X |
Isode X.400 Gateway API | X | X | X |
Open Group X.400 Gateway API | X |
Open Group X.400 Gateway API
Isode provide support for an implementation of the Open Group Standardized API
This enables application writers to develop Gateway Applications using this standardized API.
Technical information on the Open Group Gateway API and what is needed to use the API is available. In addition example applications and Isode extensions to the Open Group standard are also available. See Open Group Gateway API Technical Specification
Isode X.400 API Families
There are two families of Isode X.400 APIs
-
P3 and P7 Clients
These APIs work over the X.400 P3 and P7 protocols and are able to interwork with non Isode products which conform to these standards.
P3 and P7 client applications bind as a User Agent (to the MTA and Message Store respectively). Submission works in a similar way. However P7 is a retrieval protocol, whereas P3 is a delivery protocol.
P7 applications bind as a Message Store user to an X.400 Message Store such as Isode's M-Store. The P7 application can retrieve messages, which can be deleted from this user's mailbox. Only messages for the bound user can be retrieved, deleted etc. When submitting messages, the originator of the message must be the bound user.
P3 applications bind to the P3 channel of Isode M-Switch.
Technical information on what is needed to use the P3/P7 API is available at P3/P7 Technical Specification
More information on P3 and P7 APIs are available at Isode's P3 and P7 Client APIs.
-
Gateway Applications
- Isode Proprietary Gateway API
- Open Group Gateway API
Typically these APIs are used for transferring messages to and from protocols other than X.400.
Technical information on the Isode Gateway APIs and what is needed to use the API is available at Isode Gateway API Technical Specification
More information on Gateway APIs are available at Isode's Gateway APIs.
Security Label Support Functions
There are some support functions to help application writers insert and extract Security Labels from Objects presented by the APIs.
These are described here: Security Label Functions
Style of API
The Isode specified APIs use an object-oriented style, and rely on arguments which are
- integers (either explicitly or as manifest constants)
- strings (whose length is passed as an integer)
- opaque objects (on which the API functions perform operations)
This approach facilitates support in multiple languages. The Isode APIs share common definitions where appropriate.
Programming Language Support
Support for programming languages are as follows:
- 'C': All APIs are provided in C. The underlying implementations are in C.
- Tcl: Some of the APIs have Tcl bindings to help provides scripting interfaces and test tools.
- Java: Some of the APIs have Java bindings, built using JNI over the C API.
API Documentation
Descriptions on overall use is provided for all APIs. The Isode 'C' and Java APIs have detailed API documentation that is auto-generated from the API implementation. The Open Group X.400 Gateway API is externally specified. Isode documents how to use this API and Isode's extensions to the standard API.
There are examples of use of all of the APIs in each language (except for the Open Group API which is only available in C). Because the API functionality is broadly language independent, the examples in other languages may be helpful.
Isode also makes available (for a small fee) the Java source code to XUXA the demonstration X.400 User Agent, that uses the X.400 Client API. This provides a complete application and also an example of building a higher level Java API on the base API.