Настройка ETL Mailer для отправки писем - Публичная база знаний Modus
Общая информация
«ETL Mailer» — это механизм отправки писем через HTTP-сервис, опубликованный в базе Modus ETL. Сервис используется для отправки системных уведомлений, в том числе писем для восстановления пароля на Аналитическом портале (Modus BI).
Для работы «ETL Mailer» необходимо:
- Опубликовать HTTP-сервис
хс_ОтправкаЭлектронногоПисьмав Modus ETL. - Создать профиль группы доступа, группу доступа и технического пользователя «EmailSender».
- В базе метаданных Modus BI задать настройки :
mailer.etl.configmailer.etl.enablemailer.etl.template, подробнее о настройках см. подраздел «Настройка параметров «ETL Mailer»».
Ниже на рисунке представлена схема работы «ETL Mailer».
Публикация HTTP сервиса
Публикация выполняется так же, как и для других HTTP сервисов Modus ETL. Подробнее о публикации HTTP сервисов см. статью «Запуск пакетов, составов, сценариев используя API».
Рабочий процесс:
- Откройте Modus ETL в режиме конфигуратора.
- Перейдите в раздел «Администрирование/ Публикация на веб-сервере…».
- В открывшемся окне выберите вкладку «HTTP сервисы».
- Установите галочку напротив сервиса
хс_ОтправкаЭлектронногоПисьма - Сохраните настройки и перезагрузите веб-сервер.

Создание профиля, группы доступа и пользователя «EmailSender»
Для доступа к HTTP сервису хс_ОтправкаЭлектронногоПисьма необходимо создать технического пользователя «EmailSender» и назначить ему соответствующую роль. Общий принцип создания профилей и групп пользователей описан в статье «Настройка профилей и групп пользователей».
Ниже рассмотрен пример создания группы доступа, профиля доступа и технического пользователя для работы сервиса «ETL Mailer».
Шаг 1. Создайте профиль группы доступа
- Запустите Modus ETL.
- Перейдите в раздел «Администрирование/ Настройки пользователей и прав/ Профили групп доступа».
- Нажмите кнопку «Создать».
- В поле «Наименование» укажите наименование профиля — «EmailSender».
- На вкладке «Разрешённые действия (роли)» отметьте роль «Отправка электронных писем через сервис (ETL)».
- Нажмите на кнопку «Записать и закрыть».

Шаг 2. Создайте группу доступа
- Перейдите в раздел «Администрирование/ Настройки пользователей и прав/ Группы доступа».
- Нажмите кнопку «Создать».
- Укажите наименование группы, «EmailSender».
- В поле «Профиль» выберите созданный профиль «EmailSender». Нажмите кнопку «Записать и закрыть». Перейдите к Шагу 3. Создайте пользователя «EmailSender».

Если пользователь «EmailSender» уже создан:
- Перейдите на вкладку «Участники группы», нажмите кнопку «Подобрать».
- В диалоговом окне «Подбор участников группы доступа» выберите пользователя «EmailSender». Нажмите кнопку «Подобрать и закрыть».

- Нажмите кнопку «Записать и закрыть».

Шаг 3. Создайте пользователя «EmailSender»
- Перейдите в раздел «Администрирование/ Настройки пользователей и прав/ Пользователи».
- Нажмите кнопку «Создать».
- Заполните поля:
- «Полное имя» — «EmailSender»;
- «Имя (для входа)» — «EmailSender»;
- Установите пароль.
- Установите галочки:
- «Вход в приложение разрешен»;
- «Аутентификация 1С:Предприятия»;
- «Аутентификация по протоколу OpenID-Connect»;
- «Пользователю запрещено изменять пароль».
- Снимите галочку:
- «Показывать в списке выбора».
- Перейдите в настройку «Права доступа», на вкладке «Группы доступа» нажмите кнопку «Включить в группу». В диалоговом окне «Группы доступа» назначьте пользователю группу «EmailSender», нажмите кнопку «Выбрать».

- Перейдите на вкладку «Разрешенные действия (роли)» убедитесь что у пользователя есть право «Отправка электронных писем через сервис (ETL)».

- Перейдите в настройки «Основное», нажмите кнопку «Записать и закрыть».

Настройка параметров «ETL Mailer»
Настройки «ETL Mailer» задаются напрямую в базе метаданных портала Modus BI через SQL-запрос. Интерфейса для их изменения нет. Это связано с тем, что инициатором отправки письма является портал Modus BI:
- Пользователь на странице входа в Modus BI в запрашивает восстановление пароля.
- Modus BI формирует письмо: кому, тема, тело — по шаблону установленному в
mailer.etl.template - Портал обращается к HTTP сервису
хс_ОтправкаЭлектронногоПисьмав базе Modus ETL по адресу, указанному в настройкеmailer.etl.config - Modus ETL принимает запрос и отправляет письмо для восстановления пароля на почту пользователя.
Примечание.
- Настройки
mailer.etl.config,mailer.etl.enableиmailer.etl.templateхранятся в таблицеsettingбазы метаданных портала Modus BI, а не в базе Modus ETL. - Modus ETL в этой схеме выступает исполнителем — принимает запрос и отправляет письмо. Портал (Modus BI) инициатор — знает, что и кому отправить.
- В настройке
mailer.etl.configуказывается корневой URL HTTP сервиса, а не его имя в конфигураторе. Например, сервисхс_ОтправкаЭлектронногоПисьмаимеет корневой URLsendEmail, поэтому полный путь выглядит как/hs/sendEmail/. - Если Modus ETL недоступен или HTTP сервис не опубликован — письмо пользователю не уйдёт, даже если настройки в Modus BI заданы.
- Если Modus BI не настроен, он не обратится к Modus ETL — письмо пользователю не уйдёт.
Обратите внимание!
- Для работы функционала у вас должны быть оба продукта:
- Modus BI — инициатор отправки, хранит настройки и формирует письмо;
- Modus ETL — исполнитель, публикует HTTP-сервис и отправляет письмо.
- В примерах кода <Логин> и <Пароль> — это логин и пароль технического пользователя EmailSender. <АдресСервераETL> — адрес вашего сервера Modus ETL, <ИмяБазыETL> — имя базы ETL.
Таблица с примером настроек mailer.etl.config, mailer.etl.enable и mailer.etl.template
|
Параметр |
Описание |
Пример значения |
|
|
|
|
|
|
Глобальный переключатель «ETL Mailer». Определяет, включена ли отправка писем через HTTP-сервис Modus ETL. Возможные значения:
|
1 |
|
|
|
|
Пример SQL-запроса:
UPDATE public.setting
SET "name"='mailer.etl.config', value='{"url": "http://<Логин>:<Пароль>@<АдресСервераETL>/<ИмяБазыETL>/hs/sendEmail/","headers":{"Content-Type":["application/json"]}}', visible=1
WHERE setting_id=111;
UPDATE public.setting
SET "name"='mailer.etl.enable', value='1', visible=1
WHERE setting_id=110;
UPDATE public.setting
SET "name"='mailer.etl.template', value='{"whom":"#to#","subject":"#subject#","body":"#body#"}', visible=1
WHERE setting_id=112;

Примечание.
setting_id(111, 110, 112) — фиксированные ID для этих настроек во ВСЕХ базах метаданных, т.е. у всех баз данных он одинаковый.- В SQL-запросе рекомендуется идентифицировать настройку по полю
name(mailer.etl.config, mailer.etl.enable, mailer.etl.template), а не поsetting_id.Это надёжнее, так какname— это имя настройки.
Пример SQL-запроса с обращением к name:
UPDATE public.setting
SET value='{"url": "http://<Логин>:<Пароль>@<АдресСервераETL>/<ИмяБазыETL>/hs/sendEmail/","headers":{"Content-Type":["application/json"]}}', visible=1
WHERE "name"='mailer.etl.config';
UPDATE public.setting
SET value='1', visible=1
WHERE "name"='mailer.etl.enable';
UPDATE public.setting
SET value='{"whom":"#to#","subject":"#subject#","body":"#body#"}', visible=1
WHERE "name"='mailer.etl.template';
Проверка работоспособности
Для проверки работоспособности«ETL Mailer», выполните шаги из плашки «Как пользователю восстановить пароль к Modus BI?» раздела «FAQ».
Ограничения и особенности
- Риск сброса настроек при обновлении Modus BI. Настройки
mailer.etl.*хранятся в базе метаданных. При обновлении портала рекомендуется проверять их актуальность. - Настройка параметров «ETL Mailer» только через SQL-запрос, вручную. Интерфейса для изменения параметров
mailer.etl.*— нет. - Технический пользователь «EmailSender» создаётся вручную в базе Modus ETL.