How Do I write an IBM (Lotus) Notes Client?

ArtOfWarfare

I'm looking to write a unified email and messaging program. Supporting IMAP, POP, and SMTP are all pretty easy - the protocols are well documented and easy to come by.

Exchange has a SOAP API documented here, whereby you can write an Exchange client which talks with Exchange servers.

I'm looking to find out what protocol IBM (Lotus) Notes uses and how I can go about writing a standalone application which can send and receive mail. (Standalone is a key part of this - I've seen various things about automating the existing client, but I'm looking to write a new client, so I need to know what protocols it uses.)

Language is unimportant to me at this time. I'm leaning towards Python for the project, but I'm still at an exploratory stage where I'm trying to determine what frameworks exist in any language to help me write this.

Jesse Gallagher

That's a pretty interesting topic! There are two ways I can think of that provide mail-oriented abstractions, and two that allow you to access mail files as databases directly.

To start out with, and this is very likely the expedient route to take, Domino supports IMAP. It's far from perfect and it's not likely to improve, but it does more or less work for mail access. Not every server has it enabled by default, but it's not terribly difficult or unusual for an administrator to do so.

Recently, the Extension Library has added a JSON-based mail service that purports to provide a pretty friendly API for many operations, but is not complete - for example, it doesn't seem to cover a user's custom views or folders.

Depending on the depth of the project, then there are the routes for accessing the server using Domino's database API, which would be the most flexible but would involve far more hurdles.

The core protocol is NRPC, which, to my knowledge, is only implemented in the core Notes library. As Stan said, it's heavily tied to the presence of an ID file (server or user) and uses that for its encryption. With some setup, you could have that library and ID present and then use the C functions and structs on a platform it supports. This route would give you the most functionality (there are a number of C-level functions to assist with converting between Notes's document representation and MIME).

Alternatively, there is a remote-access protocol called DIIOP that can be used to access a remote Domino server using UN/password credentials via Java objects. This is not enabled for every server, but it's not terribly uncommon, and isn't that hard to enable. You wouldn't have access to all of the C API's functionality for edge cases, but this would cover a lot of ground.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to get document when I select a document in IBM Lotus Notes

How to convert .nsf (IBM Lotus Notes) to .pst (MS Outlook) or other mail client format

lotus notes/ibm notes/domino 9 - how make emails read/unread programmatically in lotus script?

How to run CoSign Signature SOAP API in IBM Lotus Notes?

IBM Lotus Notes Domino DLL

How do I change the default browser in lotus notes when opening links in emails?

How do I mark mail as read in Lotus Notes without actually opening the email?

How to fix Lotus Notes client for plain text email

How do I instantiate Lotus 123 Application

How to open notes:// url in IBM Notes client instead of IBM Notes Browser Plugin

How to set the template version on a Notes (Lotus/IBM/HCL) application master template

How to export Notes Document(email,task,etc.) from Lotus notes Client 8.5 into DXL File?

Minimize Lotus Notes 8.5 client to the system tray?

How do I write a script to duplicate IBM MQ MQExplorer object creation behavior?

How to forward mails in lotus notes

IBM Lotus Notes 5.0.9 - Creating a custom mobile app

How do I export the components of an app in Lotus Domino Designer?

How do I upgrade Filecoin Lotus to the latest version?

IBM Access Client Solutions run using Java Web Start: how do I run ACS functions from the command line?

How can I open a relocated ARCHIVE.NSF file in Lotus Notes?

Lotus Notes: how can i extract number in a specific position after comma

How can I access a Lotus Notes Database from PHP5

Python : How can I access Lotus Notes 8.5 Inbox to read emails

How can I write a WebSocket client in Julia?

How can i write a promise in Client Side

PHP mail() function and Lotus Notes client: HTML damaged

how to embed a video into Lotus Notes webpage

How to connect to a Lotus-Notes database with Python?

How does Lotus Notes databases store forms?