Summary Section: Isode provides an API which allows P3 and P7 Clients to be written by customers and 3rd parties.

X.400 P3/P7 Messaging APIs

Installation

The most straightforward starting point for the X.400 APIs is to use the Mconsole to install, initialize and configure a system to use all of the X.400 APIs.

Using the P3/P7 APIs

Having created your messaging configuration you will be able to use the P3 and P7 APIs using C, Tcl and Java language bindings.

Difference between P3 and P7

It's important to understand the difference between these two X.400 protocols. The MTA needs to be configured differently, and the applications need to be written differently. This is despite the use of the same set of functions as interfaces by the applications.

P3 and P7 client applications bind as a User Agent (to the MTA and Message Store respectively). Submission work 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 the Message 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 the MTA. They bind to a P3 passive channel (ie a channel which has no prog value in its configuration). The MTA creation wizard creates a p3server channel which is suitable for a P3 client.

Although the P3 client authenticates as a Message Store user (using the user's MTS password), this means that all messages which are routed for delivery to the P3 passive channel are delivered when a P3 client binds to the P3 server of the MTA. P3 clients are responsible for reliable storage of the messages. P3 clients can only unbind after an msWait() operation has returned indicating that there are no further messages for delivery by the MTA - ie all queued messages must be delivered.

Mconsole configures the MTA so that both P7 and P3 clients can retrieve/submit messages.

C Bindings

The example code is in:

  • Unix: /opt/isode/share/x400sdk/example/c
  • Windows: C:\Isode\share\x400sdk\example\c

See here for details.

Tcl Bindings

The example code is in:

  • Unix: /opt/isode/share/x400sdk/example/tcl
  • Windows: C:\Isode\share\x400sdk\example\tcl

See here for details

Java Bindings

The example code is in

  • Unix: /opt/isode/share/x400sdk/example/java
  • Windows: C:\Isode\share\x400sdk\example\java

See here for details

Using the Gateway APIs

Isode X.400 Gateway API

You need to install and configure the Isode messaging products using Mconsole in order to be able to use the Gateway APIs using C, Jave and Tcl language bindings described here.

C Bindings

The example code is in

  • Unix: /opt/isode/share/x400sdk/example/c
  • Windows: C:\Isode\share\x400sdk\example\c

See here for details.

Tcl Bindings

The example code is in

  • Unix: /opt/isode/share/example/xmt
  • Windows: C:\Isode\share\example\xmt

See here for details

Java Bindings

The example code is in

  • Unix: /opt/isode/share/example/java
  • Windows: C:\Isode\share\example\java

See here for details