Что такое SBUM?
SBUM – IS-Builder Universal Mailer, библиотека, реализующая описание интерфейса почтовой фабрики IMailFactory. Используя почтовую фабрику, можно работать с серверами POP3/SMTP и MS Exchange, отправлять и получать почтовые сообщения.
Ранние версии системы DIRECTUM «не умели» работать с почтовыми серверами на базе MS Exchange, но с появлением SBUM такая возможность появилась. Давайте попробуем выполнить необходимую настройку Windows для того, чтобы можно было использовать эту библиотеку в системы DIRECTUM 4.5.
Библиотека SBUM представлена в виде файла sbum.exe и входит в дистрибутив системы DIRECTUM, начиная с версии 4.6.1. Для того чтобы получить данную библиотеку, необходимо скачать дистрибутив системы с сайта поддержки, либо запросить непосредственно у службы поддержки.
Итак, вы получили библиотеку, теперь необходимо зарегистрировать ее в операционной системе. Здесь вас ждет единственная неприятность: выполнить настройку придется на всех клиентских машинах, где будут выполняться сценарии, использующие почтовую фабрику.
Спешу вас обрадовать – чаще всего, как показывает практика, обработкой корреспонденции приходится заниматься службе Workflow, поэтому и вам, скорее всего, понадобится настроить SBUM только на сервере, где работает эта служба.
Выполните пошагово:
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:
Справа будет отображаться список доступных свойств и методов класса. Выбирая эти свойства и методы можно смотреть их описание и входные параметры методов.
Если предполагается использовать автоматическую рассылку почтовых сообщений в прикладных блоках типовых маршрутов через сервер Exchange, то вам потребуется произвести соответствующую настройку службы Workflow. Дело в том, что для подключения к серверу Exchange необходимо настроить локальный профиль. Профиль должен быть настроен для того пользователя, от имени которого работает служба Workflow.
Итак, попробуем выполнить необходимую настойку:
Для того чтобы служба Workflow смогла работать с сервером Exchange через почтовую фабрику, необходимо корректно настроить профиль 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, письмо уйдет адресату.
Библиотека UniversalMailer предназначена для отправки и получения электронной почты из разных программ с использованием разных протоколов.
Библиотека входит в состав клиентской части системы DIRECTUM. Никаких дополнительных настроек для использования библиотеки не требуется.
Для всех входных и выходных данных, исключая тело сообщения в формате HTML, всегда используется кодировка UNICODE. Для тела сообщения в формате HTML при отправке кодировка задается разработчиком, при приеме используется кодировка, переданная почтовым сервером.
Для того чтобы использовать объекты, методы и свойства библиотеки UniversalMailer в ISBL-вычислениях, нужно создать почтовую фабрику и дальше использовать методы почтовой фабрики (см. раздел «Комплексные примеры использования библиотеки UniversalMailer»).
Андрей, не то место где <...> меряются) Видишь недочеты, ошибки - подскажи, исправлю, потому что ты действительно знаешь об этом больше - я буду очень благодарен. Будь все же профессиональней.
В статье не документация переписана, как ты почему-то решил, а реальный пример внедрения, который уже пользуется популярностью среди наших разработчиков, поэтому и статья появилась.
То, что пример сценария взят из справочного руководства еще не означает, что вся статья взята оттуда же. Опять же цель заинтересовать людей, что есть такая возможность.
Маленький таймаут и несколько иной вопрос...
Возьмем, к примеру, DIRECTUM 4.5, накатим в одном из элементов разработки возможность использования SBUM, позволим работу с Exchange - все неплохо. Но разве это позволит всю ту часть системы DIRECTUM (в т.ч. платформы IS-Builder), что завязана на работе с почтой, работать с Exchange серверами? Речь про агенты рассылки, агенты обмена, сервис ввода с почты и прочие места, где используется почта.
Агенты рвссылки и т.п. достаточно просто переписать на использование SBUM (в принципе если менять текст функций отправки почты с обеспечением обратной совместимости, они и так работать будут). Вот с захватом возможны проблемы. Хотя с большой вероятностью можно будет настроить новую версию службы захвата (которая уже SBUM использует) для работы с DIRECTUM 4.5.
Авторизуйтесь, чтобы написать комментарий