API для интеграции с Domino

Я относительно новичок в мире Lotus / Domino, и мне была поставлена ​​следующая задача Domino.

Получите доступ к почтовому ящику Domino пользователя (с промежуточного сервера) и удалите с него определенные вредоносные электронные письма.

Дополнительная информация: существует внешний инструмент / процесс безопасности, который анализирует всю входящую электронную почту и может пометить ее как вредоносную. Если он помечен как вредоносный, я хочу удалить это письмо из почтового ящика соответствующего пользователя.

Мое решение будет развернуто на собственном сервере промежуточного программного обеспечения (на базе Linux) и будет получать входящие уведомления о том, какие электронные письма необходимо удалить.

В моей среде развернут сервер Domino - Lotus / Domino 9.

Я хочу предпочтительно реализовать эту функциональность с помощью Java.

Я исследовал и нашел для себя потенциальные варианты доступа к почтовому ящику пользователя на сервере Domino.

1) Я видел, что есть Набор инструментов IBM C / C ++ API для Domino. C API на первый взгляд кажется мне довольно сложным. Также мне нужно будет установить клиент Notes (на моем промежуточном сервере), чтобы я мог удаленно вызывать C API?

2) Есть ли Java API, который я мог бы использовать для подключения / доступа к Domino? Я нашел:

Кажется, это указывает на наличие некоторого интерфейса API Java / REST, однако я не уверен, могу ли я использовать его для доступа к данным входящего / почтового ящика. Кажется, это указывает на данные "Календаря", но ничего не на данные электронной почты / почтового ящика как таковые.

3) Я наткнулся на проект OpenNTF Domino API во время исследования, и, похоже, у него есть Java API. Должен ли я использовать это?

Как лучше всего получить доступ к Domino с точки зрения внешнего сервера? Я застрял на C / C ++ API или есть относительно (более простой для понимания и использования) REST / Java API, который я мог бы использовать ? Также мне нужно будет установить клиент Notes на моем промежуточном сервере, чтобы я мог вызывать API (C / C ++ или Java)?


person user3873843    schedule 11.06.2015    source источник
comment
Как и предсказывал Ричард Шварц, некоторые связи сейчас разорваны, а именно, связи IBM. Я отредактировал их с помощью web.archive.org, где это возможно. К сожалению, ссылка IBM Knowledge Center - IBM Domino Designer 9.0.1 - API Documentation не работает и не была заархивирована   -  person xlm    schedule 09.04.2020


Ответы (1)


  1. You should avoid the Notes C and C++ APIs unless:
    • You know Lotus Notes and Domino really, really well (or are willing to learn a lot very quickly) and
    • Вы определяете, что единственный способ решить вашу проблему - это написать задачу или расширение сервера Domino. Эти API работают с данными Lotus Notes / Domino на очень низком уровне.
  2. Yes, there is a Java API. It's been around for years. There is also a REST API that can be accessed from Java (or from any other language that can make HTTP connections) but that's only been around for a few years.
    • The Java API is richer and can get to a lower level than the REST API.
    • REST API может быть адекватным для того, что вам нужно, но есть очень большая вероятность, что сервер придется настраивать специально, чтобы он мог получать доступ к почтовым ящикам. Это не обязательно так, если вы используете Java API.
    • Использование Java API будет зависеть от того, сможете ли вы запустить свой Java-код на машине, на которой установлен основной код Lotus Notes / Domino. Также вам нужно будет изучить технические вопросы и вопросы лицензирования по этому поводу.
    • Хороший способ познакомиться с Java API - прочитать книгу Боба Балабана. Он старый и устаревший, но он охватывает большую часть того, что вам нужно знать для описанной вами цели. Одно предостережение заключается в том, что он был написан настолько рано, что не покрыл необходимости совершать recycle() вызовы. Но он разместил главы здесь для бесплатной загрузки < / а>. Теперь, когда вы знаете о recycle(), я уверен, что вы сможете найти информацию о том, зачем и когда она вам нужна.
  3. OpenNTF Domino API - это замена официального Java API с открытым исходным кодом. Он был создан для решения множества действительно назойливых проблем (например, recycle()!), А также ограничений использования официального API.

Re: установка клиента Notes, о котором я упоминал, когда упоминал основной код Lotus Notes / Domino в пункте 2. У вас есть два варианта для официального Java API:

  1. Local:
    • This uses the core Notes/Domino code to make Notes RPC calls to the server, so you will have to install a licensed version of the Notes client or Domino server code to get the core code.
    • Обратите внимание: если вы привязаны к 64-битной JVM, вам понадобится 64-битный код, а это значит, что вам нужно установить сервер Domino вместо клиента Notes, поскольку 64-битного клиента Notes нет.
  2. Remote:
    • You don't need to install any Notes or Domino code but this uses CORBA/IIOP instead of Notes RPC to talk to the server. This requires enabling IIOP on the Domino server.
    • В последний раз, когда я проверял, OpenNTF API поддерживает только «локальную» модель.

Однако я должен упомянуть: по этой причине это почти не по теме:

Вопросы, требующие от нас порекомендовать или найти книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой внешний ресурс, не относятся к теме Stack Overflow, поскольку они, как правило, привлекают самоуверенные ответы и спам. Вместо этого опишите проблему и то, что было сделано на данный момент для ее решения.

Хотя существование Java API можно легко подтвердить, выполнив поиск здесь, в StackOverflow, я должен признать, что найти базовые ссылки для Domino немного сложнее. Информация об этом существует буквально за 25 лет, но часто она фрагментирована и является устаревшей. Действительно сложно найти информацию об инструментах, API и библиотеках, которые доступны и актуальны сегодня. Варианты действительно довольно ограничены.

Поэтому я думаю, что этот вопрос заслуживает ответа, поскольку на самом деле он не сводится к мнению. Я не собираюсь давать рекомендации, потому что это действительно будет мнение.

person Richard Schwartz    schedule 12.06.2015
comment
Ричард - Спасибо за ваше руководство и указатели. Я планирую пройти через книгу «Программирование Domino с Java» и получить образование и познакомиться с Domino Java API. - person user3873843; 15.06.2015