Сервис синхронизации
почты
Сервис синхронизации почты позволяет реализовать управление отправкой, получением и синхронизацией писем электронной почты между системой и основными типами почтовых серверов, такими как MS Exchange и IMAP/SMTP.
Для корректной синхронизации большого потока электронных писем в сервисе реализована возможность горизонтального масштабирования.
Данный сервис является обязательным для взаимодействия BPMSoft с электронными письмами.
Компоненты сервиса
Сервис ExchangeListener состоит из следующих компонентов:
Таблица 1 — Компоненты сервиса
| Компонент | Описание |
| Listener.Web.Api | Компонент отвечает за выполнение отправки, получения и синхронизации писем для BPMSoft. Реализует бизнес-логику по взаимодействию с почтовыми серверами (Exchange, IMAP/SMTP) |
| Listener.Api | Компонент отвечает за синхронизацию писем. Подписан на очередь RabbitMQ и обрабатывает задания по синхронизации писем. Выполняет синхронизацию писем в асинхронном режиме, разгружая web api приложение |
|
Dragonfly Версия компонента в последнем релизе микросервиса (Docker): dragonfly:latest Версия компонента в последнем релизе микросервиса (Kubernetes): 1.28.0 |
NoSQL СУБД, где хранятся данные о функциях, активных подписках и авторизации. Она управляет подписками и событиями, обеспечивая гибкое взаимодействие между компонентами через Publisher/Subscriber |
|
RabbitMQ Версия компонента в последнем релизе микросервиса (Docker): rabbitmq:4.0.4-debian-12-r1 Версия компонента в последнем релизе микросервиса (Kubernetes): 4.0.9 |
Брокер очередей необходим для работы Listener.Api, содержащий сообщения с информацией о синхронизируемых письмах. Для корректной работы сервиса требуется настройка отдельного virtualhost |
Рисунок 1 — Схема работы сервиса

Способы развертывания
Сервис синхронизации электронной почты возможно развернуть как для on-site, так и для cloud решения.
В зависимости от целевого назначения системы допускаются следующие варианты развертывания:
- Продуктивная (PROD) — допускается развертывание сервиса строго с использованием ПО Kubernetes. Для высоконагруженных сред рекомендуется использовать кластер;
- ПредПродуктивная (STAGE) — рекомендуется развертывание сервиса с использованием ПО Kubernetes; допускается развертывание с использованием ПО Docker;
- Тестовая (TEST) — допускается развертывание сервиса как с использованием ПО Kubernetes, так и с использованием ПО Docker;
- Среда разработки (DEV) — допускается развертывание сервиса как с использованием ПО Kubernetes, так и с использованием ПО Docker.
Возможности масштабирования
Обработка электронных писем производится отдельными узлами из расчета 1 обработчик на 50 подписок. Количество реплик задается параметром replicaCount через переменную окружения helm-пакета. Имеется возможность настройки автоматического масштабирования реплик по количеству активных подписок.
Рекомендуем изучить
Развертывание сервиса синхронизации почты через Kubernetes
Развертывание сервиса синхронизации почты через Docker
Калькулятор системных требований