Войти
 
 
   
 
  
Новости Notes.ру Библиотека Биржа труда Вопрос - ответ Форум Регистрация Поиск О проекте
Разделы
О Notes
Советы
Шаблоны и примеры
Литература
Презентации
 
Дополнительные инструменты в панели инструментов   
Шаблоны и примеры Читать статью
 
Классы для работы со стабами удалённых документов для Windows64   
Шаблоны и примеры Читать статью
 
Базовые компоненты XPages Extension Library: Widget Container   Серия статьей дающая представление о базовых компонентах Extension Library, их основных свойствах и мест применения
О Notes Читать статью
 


О Notes

Главная   Библиотека   О Notes

Управление электронной почтой в Lotus Domino R5

Николай Норкин,
Вятские Информационные Технологии, Киров

Управление электронной почтой и серверная задача Router
Современный офис трудно представить себе без компьютеров, а работу служащего или клерка без использования электронной почты. Одно из основных назначений сервера Lotus Domino - это управление потоками электронной почты как внутри организации, так и передача и получение сообщений извне. Для обработки электронной почты на сервере Domino используется серверная задача Router (раутер, маршрутизатор почты).

В функции Router входит доставка почтовых сообщений в почтовые ящики пользователей, обслуживаемые этим сервером, передача почты на другие почтовые серверы Domino и не-Domino, конвертация сообщений из внутреннего формата Notes (CD record) в формат MIME (Multi-purpose Internet Mail Extension) и наоборот, а также запуск агентов "до прихода новой почты". Для приема входящих SMTP-сообщений Router'ом используется серверная задача SMTP Listener.

При таком широком круге решаемых задач от Router требуется, в первую очередь, высокая производительность. Во многом ввиду необходимости достижения подобной характеристики "логика" работы задачи была изначально предельно проста: найти сообщение в "своей" базе данных mail.box -> определить, положить его в пользовательский почтовый ящик или передать на другой сервер -> выполнить это действие.

Однако, зачастую корпоративные правила требуют выполнения специфичных задач, например: различные ограничения, борьба с нежелательными сообщениями (спам), мониторинг и аудит корпоративной переписки и т.п. Частично эти задачи решаются в Domino R5, функциональность Router в R6 серьезно расширена, но несмотря на это имеющиеся возможности иногда не могут удовлетворить запросы пользователей...


А как можно...
"Когда у меня был Exchange, у меня вся проходящая почта складывалась в одно укромное место и хранилась там на случай, если кто какой документ потеряет - прецеденты были" .

Современный бизнес предъявляет к инструментам повышенные требования. Зачастую перед администраторами ставятся задачи, для решения которых нет очевидных путей, или кажущаяся простота играет плохую шутку... Вот список наиболее часто встречающихся вопросов, с которыми приходится сталкиваться:

  • Как научить сервер R5 копировать исходящую почту?
  • Создание единого архива исходящих и, возможно, входящих...
  • Как можно программным путем выполнить анализ трафика почтовых сообщений (т.е. кто отправляет и получает и размер сообщений)?
  • Есть ли какие-нибудь средства сбора статистики по обьему прошедшей через Domino сервер почты?
  • Как можно прописать каждому пользователю (не всем сразу) доступ к определенным почтовым ящикам, чтобы не писали куда попало?
  • Надо сделать так, чтобы соблюдалась иерархия организации при передаче сообщений, например : гендиректору могут написать его заместители, а обычному работнику не дается доступ к отправке.

В настоящей статье рассматривается методология решения этих и схожих задач, связанных с управлением почтовой системой Domino.

Отступление. Автор не рассматривает вопросы этики и морали в данной статье и не учитывает различия между корпоративной и частной, по своему характеру, перепиской.

Дополнительные задачи Domino и их возможности
В Lotus Domino R5 имеются дополнительные задачи, которые могут применяться для сбора статистики и анализа трафика почтовых сообщений.

Mail Tracking Collector
Серверная задача Mail Tracking Collector предоставляет возможности трассировки и мониторинга сообщений. Протокол доставки сообщений ведется в базе Mail Tracking Store (mtdata/mtstore.nsf).

С помощью задачи реализуются следующие функции и возможности :
  • Пользователь Notes может из своего почтового ящика проследить судьбу ранее отправленного сообщения. Для этого, выбрав в представлении All documents (Все документы) ранее отправленное сообщение, необходимо выполнить команду Главного меню Actions -> Tools -> Send Tracking Request. При этом пользователь получит отчет о состоянии доставки отправленного ранее сообщения от серверов маршрута, на которых работает задача Mail Tracking Collector вплоть до сервера в маршруте, который не передает набор специальных полей прослеживающего сообщения;
  • Администратор Domino может отслеживать процесс доставки сообщений и делать выборки сообщений, удовлетворяющих определенному запросу. Трассировка отправки/доставки сообщений ведется в пределах серверов, использующих задачу Mail Tracking Collector;
  • Создание отчетов по статистике почтовых сообщений в базе Reports (reports.nsf).

К сожалению, структура документов базы Mail Tracking Store не способствует удобству их чтения и анализа, а перечень отчетов базы Reports ограничен стандартной поставкой:
  • Периодичность отчетов - Once, Daily, Weekly, Monthly.
  • Период, за который создается отчет - Today, Yesterday, Over the last week, Over the last month, All available information.
  • Тип отчета - Top 25 Users by Count, Top 25 Users by Size, Top 25 Senders by Count, Top 25 Senders by Size, Top 25 Receivers by Count, Top 25 Receivers by Size, Top 25 Most Popular Next Hops, Top 25 Most Popular Previous Hops, Top 25 Largest Messages, Message Volume Summary, Message Status Summary.

Billing
Задача Billing обеспечивает сбор информации по использованию ресурсов Domino, занося эту информацию в базу Billing (billing.nsf) или в двоичный файл billing.nbf. Сбор информации ведется по следующим задачам:
  • Работа агентов (Billing Agent);
  • Продолжительность работы с базами данных (Billing Database);
  • Чтение и запись указанных документов (Billing Document);
  • Запросы Web-сервера (Billing HTTPRequest);
  • Передача почты на другие серверы (Billing Mail);
  • Продолжительность репликаций с серверами и клиентами (Billing Replication);
  • Продолжительность сессий (Billing Session).

В контексте изложения больше всего привлекает использование задачи для сбора статистики по почте. К большому сожалению, задача обеспечивает протоколирование только исходящей почты и более эффективна на промежуточных почтовых серверах (hub-серверах), для которых по определению любая почта транзитна, то есть становится исходящей.

Что же делать, если стандартных средств оказалось недостаточно для решения задачи?

Ложные пути решения
Начинающий разработчик, только что написавший свой первый агент на LotusScript, говорит: «Ага! Втыкаем агента на появление нового документа в базу mail.box, и…» Когда код готов, начальству отрапортовано… Вдруг оказывается, что агент, работавший после сохранения, не работает на следующий день (не надо кидать в автора камнями, было что-то подобное в одной из версий 4.6.x)… Да и вообще выясняется, что эта технология работать не может…

Причин тут две. Хотя вполне хватило бы и одной из них:
  1. Специфичность базы mail.box и работы с ней задачи Agent manager (отвечающей за запуск агентов на сервере). Вернее, отсутствия этой самой работы, как таковой. Agent manager просто не обрабатывает эту базу, когда при запуске анализирует все ресурсы для определения расписания работы агентов. Таким образом, агент из mail.box "остается не при делах".
  2. Даже если бы не было первой причины (а она, по мнению автора, всего лишь следствие второй), то разработчик столкнулся бы с тем, что Agent manager имеет достаточно большую (для рассматриваемого случая применения) инерционность реакции на события, и Router успевает отправить сообщение задолго до того, как запустился агент.

Ладно… «Орешек знаний тверд… Но мы не привыкли отступать». Подойдем с другой стороны: перенесем функциональную часть решения на клиента. Для этого внесем изменения в шаблон пользовательской почтовой базы (mail50.ntf). Во-первых, заменим стандартную кнопку Send своей, где к списку пользователей, которым отправляется скрытая копия будем добавлять адрес некоторой mail-in базы. Во-вторых, в пользовательскую почтовую базу добавим агента, который будет копировать входящую почту "по назначению".

Удовлетворенно потираем руки и ждем аплодисментов...И все бы было ничего, если бы не множество НО…
  • НО... возрастает нагрузка на Router из-за дополнительной пересылки сообщений;
  • НО... только самые невнимательные пользователи не замечают такой грубо сделанной работы. И, естественно, ищут методы противодействия;
  • НО… у пользователей с уровнем доступа менеджера к своему почтовому ящику есть возможность просто поменять дизайн на время отправки “плохого” сообщения, а потом вернуть его обратно;
  • НО... при сколько-нибудь значительном числе пользователей (ну, с двумя-тремя десятками, сидящими в одной локальной сети, это решение еще работать будет, но не более) начинаются проколы в работе решения, отягощенные еще и тем, что решение предусматривало определенную «децентрализацию» (код "растащен" по почтовым ящикам), и тем, что решение оказалось не встроенное в систему, а надстроенное над пользовательским интерфейсом.


Принципы решения задач, связанных с управлением электронной почтой
Исходя из предыдущих параграфов можно определить требования к решениям:
  • Процесс должен быть реализован таким образом, чтобы операции по обработке и управлению почтовыми сообщениями выполнялись незаметно для пользователей;
  • Решение должно требовать как можно меньше ресурсов и, по возможности, не влиять на функционирование серверной задачи Router;
  • Механизмы, используемые в реализации дополнительных функций должны быть интегрированы в систему как можно ближе к ядру.
Следовательно, наиболее оптимальный путь решения подобных задач заключается в размещении дополнительной серверной задачи. Существует два варианта реализации подобных серверных задач: hook и Extension Manager.

Использование Notes C API
Lotus Notes имеет API, который может применяться для разработки программ, дополняющих функциональность сервера или клиента, в том числе и в области обработки почтовых сообщений. Ничего сложного в том, чтобы написать серверную задачу Domino самому, нет.
Для этого нужно:
  1. Загрузить доступную после регистрации на сайте Lotus Developer Domain версию продукта Notes C API, соответствующую версии сервера Domino. Список инструментов разработчика доступен на Lotus Developer Domain: toolkits по адресу http://www-10.lotus.com/ldd/toolkits
  2. Инсталировать компилятор C, рекомендуемый в документации для платформы, на которой работает ваш сервер Domino(см. раздел Platform Specifics Lotus C API User Guide)
  3. Изучить документацию и примеры, входящие в комплект(notesapi/samples/admin/tracker/ и notesapi/samples/mail/extmail/).

Если вы немного знакомы с C и довольно хорошо разбираетесь в Notes, то вы справитесь с этой задачей.
Последний нерассмотренный вопрос: что же лучше использовать для реализации описываемых задач, hook или Extension Manager?

Минусы Extension Manager:
  • Доступен начиная с Domino R5, то есть не поддерживается в R4
  • Две и более задач, использующих Extension Manager, плохо "уживаются" на одном сервере.

Например, если вы используете антивирусное программное обеспечение для Domino (в большинстве случаев практикующее именно работу с Extension Manager), то при инсталляции написанной задачи скорее всего вы столкнетесь с проблемами. Возможные симптомы некорректного функционирования в подобной ситуации:
  • почтовые сообщения приходят получателям дважды;
  • появляются почтовые сообщения в mail.box на сервере, помеченные как Dead Mail, без каких-либо видимых причин;
  • антивирусная программа обрабатывает не все почтовые сообщения, "пропуская" какое-то количество писем без проверки.

Плюс Extension Manager:
  • Hook, не имеющий специального события для электронной почты, "вынужден" обрабатывать события появления/удаления документов во всех базах на сервере. Extension Manager может "подписаться" на событие появления сообщения в почтовой базе (mail.box)

Коммерческие продукты

ND Cerberus от компании Notes Development (http://www.notesdev.ru), а вернее - несколько модулей, входящих в его состав: Mail Redirection Service, Mail Deny, Mail Log.
Mail Redirection Service позволяет перенаправлять и/или архивировать почтовые сообщения, отвечающие определенным критериям (размер, отправитель-получатель, наличие вложений определенного типа и т.д.) или все проходящие через сервер сообщения.
Mail Deny позволяет реализовать правила, ограничивающие возможность рассылки определенного вида сообщений (борьба с внутренним спамом) и выстроить возможность хождения почты согласно иерархической структуре организации.
Mail Log предоставляет возможность ведения расширенного журнала событий
Дополнительную информацию о продукте на сайте Notesnet.ru можно найти в разделе Продукты: ND.Cerberus

Продукт CS MIMEsweeper компании CLEARSWIFT (http://www.clearswift.com) позволит решить задачи:
  • ограничения передачи и доставки сообщений, содержащих определенный контент (файлы указанного формата, слова и фразы в тексте сообщения)
  • защиты от спама с анализом содержимого или источника сообщения (ведение черных списков по домену и адресу отправителя)



    Mailwatcher
    Если в позиционировании вышеописанных продуктов читатель нашел "слишком много, чего ему не нужно" в настоящий момент, или, если быть более честным, за что он не готов платить деньги даже с прицелом на будущее, то имеет смысл присмотреться к этому решению
    Демонстрационная версия Mailwatcher 1.0, размещенная здесь показывает возможности создания архива корпоративной почты в единой базе
    Еще одно из решений, которое может быть реализовано на базе продукта - это отложенная почта
    Суть проста - есть некая база, которая реплицируется между офисами раз в 10-15 минут. И вот из одного офиса в другой летит письмо о том, что в базе произошло некое событие. Пользователь открывает базу и ничего не видит, потому что база еще не среплицировалась. Для разрешения этого случая и делается отложенная почта - уведомления определенного типа перехватываются и складываются в базу. База реплицируется, и в каждом письме лежит информация о почтовом сервере получателя, идентификаторе документа, дате последней модификации документа. Программа проверяет эту информацию, и, когда репликация завершилась, доставляет письмо дальше по маршруту
    Более подробную информацию о решении и ответы на вопрос приобретения можно получить, связавшись непосредственно с разработчиком Дмитрием Ковалевым - kda_1998@yahoo.com

    См. также: Protea Mail Tools для Lotus Notes/Domino >>>

    Читайте на Notesnet.ru:
    Расширения задачи маршрутизации почты: Антивирусная защита >>>
    Материал подготовлен: Н.Норкин
     
      Опубликовано — 04/09/2003 |    

    Jumabek, 17.10.2011 07:41:29:
    Агент



    Добавить комментарий
    Имя * :
    e-mail
    Комментарий * :
    Код подтверждения * :

  • Мероприятия
    18.12.2012   Опыт реализованных проектов на базе технологий IBM
    24.10.2012   Решения IBM для построения надежной ИТ-инфраструктуры и сервисов
    09.10.2012   Форум «Ударим СЭДом по бездорожью, разгильдяйству и непрозрачным бизнес-процессам! Система электронного документооборота CompanyMedia 4.0: вперед в будущее!»
    Пресс-релизы
    02.06.2011   ООО "АДБ.РУ" выпустило очередную версию системы управления контентом для Lotus Domino - Logosphere 2.7.
    21.01.2010   Компания «Поликом Про» выполнила для компании «Синергия» пилотный проект по внедрению системы защиты электронной почты IBM Lotus Protector for Mail Security
    22.12.2009   Новые технологии разработки приложений на базе Lotus Domino
    Биржа труда
    18.04.2012 - разработчик Lotus Notes (ОАО "УРАЛСИБ")
    26.07.2011 - Программист Lotus (удаленная работа) ()
    06.06.2011 - Эксперт (Lotus Notes/Domino) (Крупный банк (ТОП-5))
    Последнее на форуме
     
    А так же:
    Как удалить профиль?
    16.04.2016 00:08:51
    Скопировать в буфер поле документа
    24.05.2015 08:55:52
    Импорт DXL-описания документов в Lotus Domino. Одноимённые поля
    16.04.2015 16:49:58
     
    © LOGOSPHERE.RU