Работа с электронной почтой в DIRECTUM 4.5. Настраиваем SBUM.

3 6

Что такое SBUM?

SBUM – IS-Builder Universal Mailer, библиотека, реализующая описание интерфейса почтовой фабрики IMailFactory. Используя почтовую фабрику, можно работать с серверами POP3/SMTP и MS Exchange, отправлять и получать почтовые сообщения.

Ранние версии системы DIRECTUM «не умели» работать с почтовыми серверами на базе MS Exchange, но с появлением SBUM такая возможность появилась. Давайте попробуем выполнить необходимую настройку Windows для того, чтобы можно было использовать эту библиотеку в системы DIRECTUM 4.5.

Настройка Windows

Библиотека SBUM представлена в виде файла sbum.exe и входит в дистрибутив системы DIRECTUM, начиная с версии 4.6.1. Для того чтобы получить данную библиотеку, необходимо скачать дистрибутив системы с сайта поддержки, либо запросить непосредственно у службы поддержки.

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

Спешу вас обрадовать – чаще всего, как показывает практика, обработкой корреспонденции приходится заниматься службе Workflow, поэтому и вам, скорее всего, понадобится настроить SBUM только на сервере, где работает эта служба.

Выполните пошагово:

  1. Скопируйте библиотеку в папку с установленной клиентской частью DIRECTUM.
  2. В командной строке запустите файл sbum.exeс ключом /regserver:
sbum.exe /regserver

После выполнения команды библиотека должна успешно зарегистрироваться в системе. Проверить это можно следующим образом: запустите MS Excel и перейдите на вкладку «Разработчик». В области закладки «Код» нажмите «Visual Basic”:

В открывшемся редакторе выберете в пункте меню Tools->References. В появившемся списке попытайтесь найти библиотеку SBUM Library:

Если вы ее нашли, то библиотека подключена правильно, и вы можете с нею работать в платформе IS-Builder. Если библиотеки нет в списке, попытайтесь выполнить регистрацию с административными правами, также проверьте правильность написания ключа и пути к библиотеке.

С помощью редактора Visual Basic for Applications, вы можете просмотреть объектную модель почтовой фабрики. Также объектная модель с полным описанием доступна и в справочном руководстве системы DIRECTUM с версии 4.6.1.

Давайте посмотрим на объектную модель фабрики. Для этого необходимо отметить галочкой библиотеку SBUM Library в списке библиотек (как на предыдущем рисунке). После этого необходимо в пункте меню View->Object Browser запустить инспектор объектов. В инспекторе объектов выберете подключенную библиотеку, а в списке ниже выберете класс MailFactory:

Справа будет отображаться список доступных свойств и методов класса. Выбирая эти свойства и методы можно смотреть их описание и входные параметры методов.

Настройка Workflow

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

Итак, попробуем выполнить необходимую настойку:

  1. Необходимо изменить учетную запись, от имени которой запускается Workflow. Для этого запустите консоль «Services.msc» на сервере с установленной службой Workflow. Найдите службу в списке, откройте ее свойства и перейдите на вкладку «Вход в систему».
  2. Выберете запуск от учетной записи и укажите данные нужного пользователя (пользователь может быть заранее создан). После этого служба может быть запущена в обычном режиме.

Настройка профиля Outlook

Для того чтобы служба Workflow смогла работать с сервером Exchange через почтовую фабрику, необходимо корректно настроить профиль Outlook. Посмотрим, как это сделать:

  1. Войдите в систему от имени того же пользователя, от которого вы запустили службу Workflow.
  2. После авторизации необходимо открыть панель управления «Панель управления\Учетные записи пользователей\Почта»:

  1. Открыть конфигурацию Outlook:

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

Важно! Тип транспорта почтовых сообщений должен быть Exchange.

Через программу Outlook попытайтесь отправить или принять письмо с другого ящика. После того как убедитесь, что письма корректно отправляются и принимаются, можете завершить настройку профиля Outlook.

Пробуем выполнить отправку сообщения

Добавьте на схему маршрута блок-сценарий и в свойство «Вычисление» напишите примерно такой код (измените его под свои требования):

//Создать почтовую фабрику
MailFactory = CreateObject("SBUM.MailFactory")
//Запросить у фабрики сервер типа "MAPI"
Server = MailFactory.GetServer("MAPI")
//Создать и означить параметры входа
Credentials = MailFactory.CreateParamList()
Credentials.Items("ProfileName") = "Outlook"
//Выполнить вход на сервер
Server.Logon(Credentials)
//Создать новое письмо
NewMessage = MailFactory.CreateMessage()
//Указать тему письма
NewMessage.Subject = "Обнаружен Джон Коннор"
//Указать получателя письма
NewMessage.To.Items("Получатель") = "mainframe@skynet.net"
//Указать тело письма
NewMessage.Body = "Координаты объекта: 34, 45, 12"
//Указать важность письма
NewMessage.Importance = "Low"
//Отправить сообщение
Server.SendMessage(NewMessage)
//Выполнить выход с сервера
Server.Logoff()

Если все правильно было настроено, то при запуске типового маршрута, и обработкой блока-сценария службой Workflow, письмо уйдет адресату.

Андрей Подкин
SBUM – IS-Builder Universal Mailer, библиотека, реализующая описание интерфейса почтовой фабрики IMailFactory.
Вообще ни о чем. Фабрика сама по себе никому не интересна. Вот цитата из документации:

Библиотека UniversalMailer предназначена для отправки и получения электронной почты из разных программ с использованием разных протоколов.

Библиотека входит в состав клиентской части системы DIRECTUM. Никаких дополнительных настроек для использования библиотеки не требуется.

Для всех входных и выходных данных, исключая тело сообщения в формате HTML, всегда используется кодировка UNICODE. Для тела сообщения в формате HTML при отправке кодировка задается разработчиком, при приеме используется кодировка, переданная почтовым сервером.

Для того чтобы использовать объекты, методы и свойства библиотеки UniversalMailer в ISBL-вычислениях, нужно создать почтовую фабрику и дальше использовать методы почтовой фабрики (см. раздел «Комплексные примеры использования библиотеки UniversalMailer»).

 

выполнить настройку придется на всех клиентских машинах, где будут выполняться сценарии, использующие фабрику поиска.
Я что-то пропустил и SBUM кск-то стал связан с поисками?
 
 
В командной строке запустите файл sbum.exeс ключом /regserver:
Примечание: в Windows Vista/7/2008/2008R2 необходимо запускать строку от имени администратора (иначе UAC помешает зарегистрировать COM-сервер).
 
Проверить это можно следующим образом: запустите MS Excel и перейдите на вкладку «Разработчик».
Кто бы еще оплатил редакцию MS Office, где есть такая возможность. Гораздо проще и быстрее в командной строке спросить:
	reg query HKCR\SBUM.MailFactory
Настройка профиля Outlook
Как правило, на сервера не ставят Outlook. Поэтому гораздо уместнее сослаться на настройку профиля Exchange без Outlook (установку "Extended MAPI & CDO" и запуск sbxpc.exe).
 
напишите примерно такой код
Передран пример из документации. Причем далеко не самый интересный. Гораздо полезнее было бы продемонстрировать отправку вложений.
 
Итого: снова видим переписывание документации, причем достаточно неумелое.
Антон Калашников

Андрей, не то место где <...> меряются) Видишь недочеты, ошибки - подскажи, исправлю, потому что ты действительно знаешь об этом больше - я буду очень благодарен. Будь все же профессиональней.

В статье не документация переписана, как ты почему-то решил, а реальный пример внедрения, который уже пользуется популярностью среди наших разработчиков, поэтому и статья появилась.

То, что пример сценария взят из справочного руководства еще не означает, что вся статья взята оттуда же. Опять же цель заинтересовать людей, что есть такая возможность.

Андрей Подкин
не то место где <...> меряются
Ага, это то место, где набирают "баллы" за материалы.
 
Видишь недочеты, ошибки - подскажи, исправлю
Подсказал. Ничего не изменилось. Например, статья до сих пор делает отсылку к поискам.
 
В статье не документация переписана, как ты почему-то решил, а реальный пример внедрения
Антон, найди в себе силы хотя бы один раз прочитать документацию. Я понимаю, это сложно. Но тогда ты убедишься, что в статье нет абсолютно ничего полезного, что не было бы описано в документации. А вот моменты, сложно применимые за пределами одного конкретного внедрения, есть.
 
Примерно в районе версии 4.6.1 документация сделал очень большой качественный скачок. С тех пор описывать новые механизмы в статьях есть смысл только при ином подходе.

Маленький таймаут и несколько иной вопрос...

Возьмем, к примеру, DIRECTUM 4.5, накатим в одном из элементов разработки возможность использования SBUM, позволим работу с Exchange - все неплохо. Но разве это позволит всю ту часть системы DIRECTUM (в т.ч. платформы IS-Builder), что завязана на работе с почтой, работать с Exchange серверами? Речь про агенты рассылки, агенты обмена, сервис ввода с почты и прочие места, где используется почта.

Иван Чурбаков

Агенты рвссылки и т.п. достаточно просто переписать на использование SBUM (в принципе если менять текст функций отправки почты с обеспечением обратной совместимости, они и так работать будут). Вот с захватом возможны проблемы. Хотя с большой вероятностью можно будет настроить новую версию службы захвата (которая уже SBUM использует) для работы с DIRECTUM 4.5. 

Андрей Подкин
Хотя с большой вероятностью можно будет настроить новую версию службы захвата (которая уже SBUM использует) для работы с DIRECTUM 4.5. 
Ага, только если используются сервисы преобразования, то придется поднимать две разные версии DCTS на разных серверах.

Авторизуйтесь, чтобы написать комментарий