Формулировка проблемы: необходим обработчик
событий Synergy
, формирующий XML-файлы требуемого
формата и отправляющий их транспортному уровню
Synergy
(см. задачу
2.31.INT11).
Решение: обработчик событий
Arta Synergy
— отдельное от
Arta Synergy
приложение, которое должно выполнять
следующие функции:
Читать сообщения всех типов из указанной в настройках
JMS Queue
или JMS Topic
.
Для сообщений класса
event.users.account.delete
формировать
XML-файл формата, описанного в Приложении 3, пункт 2, используя
для этого необходимые вызовы API Synergy
.
Для остальных сообщений класса event.users.*
формировать XML-файл формата, описанного в Приложении 3, пункт
1, используя для этого необходимые вызовы
API Synergy
.
Для сообщений класса event.registers.add
формировать XML-файл формата, описанного в Приложении 3, пункт
4. Файл, который необходимо передавать в виде base64 здесь —
XHTML-файл на основе всех данных файла по форме.
Сформированные XML-файлы отправлять по электронной почте, по
адресу, указанному в настройках, добавляя к письму собственный
заголовок
X-Synergy-Int-Exchange-Event-Timestamp
,
содержащий timestamp
генерации сообщения
Arta Synergy
.
Если сообщение Arta Synergy
, по которому
формируется почтовое сообщение, относится к классу изменений
(event.*.change
), то к письму добавляется
собственный заголовок
X-Synergy-Int-Exchange-Reprocess
, содержащий
значение yes
.
Выводить в лог сообщения об отправке почтовых сообщений,
содержащие MSGID
сформированного почтового
сообщения. Если почтовое сообщение передать не удалось
(например, недоступен SMTP-сервер), то попытка отправки должна
быть произведена ещё N
раз с интервалом в M
секунд (указано в настройках).
Иметь отдельную категорию логирования, в которую выводятся
операции по чтению сообщений, формированию XML-файлов, вызовы
API Synergy
и сообщения от транспортного
уровня (см. ниже).
Принимать почтовые сообщения об ошибках и других ситуациях от транспортного уровня (см. задачу 2.31.INT11) и от MTA и выводить их в лог.
Обработчик событий должен иметь следующий набор настроек (в виде отдельного файла настроек):
JNDI-имя JMS Queue или JMS Topic — источника сообщений;
Адрес получателя почтовых сообщений;
Адрес или DNS-имя SMTP-сервера для отправки сообщений;
Порт SMTP-сервера;
Опция аутентификации на SMTP-сервере
(да/нет)
, если да
, то
логин и пароль для аутентификации;
Дополнительные опции SMTP-сервера (шифрование);
Интервал (в секундах) и количество раз переотправки почтового
сообщения в случае сбоя при доступе к SMTP-серверу. Значение
0
в последнем случае должно означать
бесконечное количество попыток отправки;
Адрес отправителя почтовых сообщений;
Настройки почтового ящика, соответствующего адресу отправителя:
Тип почтового ящика — IMAP (только INBOX) или POP3;
Адрес или DNS-имя почтового сервера;
Порт сервера;
Логин;
Пароль;
Дополнительные опции сервера (шифрование).