Skip to content

tatarintsevsv/openSVK

Repository files navigation

openSVK

Пакет предназначен для использования в качестве транспорта при взаимодействии с СВК ТУ Банка России по протоколам SMTP/POP3.

ПО может функционировать исключительно под управлением ОС Linux.

Основные возможности

  1. Формирование писем из файлов в исходных каталогов (компонент svkcompose)

  2. Аутентификация на Telnet сервере (компонент svktelnet)

  3. Отправка писем по протоколу SMTP с возможностью одновременной отправки нескольких писем (компонент svksmtp)

  4. Прием писем по протоколу POP3 с возможностью получения одновременно нескольких писем (компонент svkpop3list, svkpop3get)

  5. Сохранение вложений из писем в заданные каталоги (компонент svkextract)

  6. Возможность интеграции с сервером dovecot для мониторинга принятых/отправленных писем

  7. ПО может функционировать в двух вариантах — в виде демона и виде консольного приложения

    Общее описание

  8. ПО функционирует в автономном режиме

  9. Цикл работы программы включает следующие этапы:

    • Подготовка файлов к отправке
    • Аутентификация на сервере Telnet
    • Отправка писем по протоколу SMTP
    • Прием писем по протоколу POP3
    • Извлечение вложений из поступивших писем
  10. Цикл работы программы автоматически запускается с определенным интервалом времени

  11. Подготовка файлов к отправке: В задаваемых конфигурацией исходных каталогах, ПО ищет файлы и формирует на их основе письма:

    • Для каждого исходного файла формируется отдельное письмо
    • Исходный файл помещается в письмо в виде вложения
    • Для каждого исходного каталога имеется возможность настроить параметры формирования писем – тема письма, получатели
    • После формирования, письма помещаются в каталоги подготовленных к отправке писем
  12. Аутентификация на сервере Telnet:

    • При аутентификации используются имя и пароль, задаваемые конфигурацией ПО
    • Компонент самостоятельно определяет тип запроса (LOGIN/LOGOUT) и в случае необходимости проходит аутентификацию
  13. Отправка писем по протоколу SMTP:

    • Для аутентификации используются имя и пароль, задаваемые конфигурацией ПО
    • Защита соединения (SSL) не используется
    • В случае ошибки отправки, письмо откладывается. И при следующем цикле работы, будет произведена повторная попытка его отправить
    • Конфигурация допускает настройку одновременной отправки нескольких писем
  14. Прием писем по протоколу POP3:

    • Для аутентификации используются имя и пароль, задаваемые конфигурацией ПО
    • Защита соединения (SSL) не используется
    • В случае ошибки отправки, письмо откладывается. И при следующем цикле работы, будет произведена повторная попытка его скачать
    • После успешного получения, письма с сервера удаляются
    • Конфигурация допускает настройку получения одновременно нескольких писем
  15. Извлечение вложений из поступивших писем:

    • Каталог для сохранения вложений зависит от отправителя письма. Для каждого отправителя должен быть сопоставлен каталог для сохранения.
    • Сохраняются все вложения из писем, имеющие имя файла
    • Если в каталоге для сохранения уже имеется файл с заданным именем, вложение автоматически переименовывается
    • Если для отправителя письма, конфигурацией не предусмотрен каталог для сохранения вложений, такое письмо перемещается в каталог для дальнейшей ручной обработки
    • Обработанные письма сохраняются в определенный каталог maildir (резервное копирование)
  16. Работа ПО журнализируется посредством syslog (файлы журналов по умолчанию /var/log/mail.log и /var/log/mail.err). При фиксируются следующие события:

    • Начало и окончание цикла обработки
    • Начало и окончание каждого из этапов
    • При Подготовке файлов к отправке:
      • Факт формирования письма с указанием имени файла-вложения и получателей сформированного письма
      • Ошибки обработки – ошибки доступа к файлу, ошибки сохранения сформированных писем
    • При Аутентификации на сервере Telnet:
      • Начало этапа аутентификации
      • Факт запроса сервером имени/пароля
      • Ошибки – ошибки аутентификации, ошибки сетевого взаимодействия
    • При Отправке писем:
      • Факт начала и завершения отправки каждого письма
      • Ошибки – ошибки аутентификации, ошибки доступа к файлам, ошибки сетевого взаимодействия
    • При Приеме писем:
      • Количество писем на сервере
      • Факт начала и завершения получения для каждого письма
      • Ошибки – ошибки аутентификации, ошибки доступа к файлам, ошибки сетевого взаимодействия
    • На этапе извлечения вложений:
      • Факт обработки каждого письма
      • Общую информацию о письме (Отправитель, получатель, тема)
      • Факт сохранения вложения с указанием имени сохраняемого файла
      • Факта невозможности обработки в случае если для отправителя не задан каталог для сохранения

Установка ПО

Для автоматической установки скачайте и запустите скрипт install.sh.

Скрипт проверит систему, установит недостающие пакеты, скачает репозиторий, скомпилирует и установит файлы ПО в /opt

Автоматическая установка проверена на «Топ-3 российских Linux» по версии Минцифры — AltLinux, Astra Linux, RedOS а так же на дистрибутиве семейства Ubuntu

Конфигурация

Конфигурация ПО содержится в файле config.xml

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

Корневой узел файла параметров не имеет.

Первый потомок корневого узла содержит параметр, pollinterval, задающий периодичность запуска обработки

Цикл работы задается последовательностью тэгов , описывающих этапы работы

Имя параметра Описание Комментарий
type Тип этапа.

Возможные значения:

telnet

pop3

smtp

compose

extract

execute

enabled Запускать ли данный этап

Возможные значения:

0

1 (По умолчанию)

facility Syslog facility Необязательный (у компонентов имеются значения по умолчанию)

Внутри тэга может находиться тэг с текстовым описанием этапа, а так же тэги, описывающие правила этапа.

Этап telnet

Этап прохождения telnet аутентификации.

Должен содержать (помимо тэга ) единственный тэг со следующими параметрами

Имя параметра Описание Комментарий
host Адрес telnet сервера Например 192.168.19.20
username Имя пользователя
password Пароль
timeout Таймаут работы, сек необязательный
rules Путь к файлу с правилами «общения» с сервером формата «вопрос-ответ»

Этап pop3

Этап приема писем

Должен содержать (помимо тэга ) один или несколько тэгов со следующими параметрами

Имя параметра Описание Комментарий
maildir Каталог, для входящих писем. (файлы писем сохраняются в подкаталоге «tmp»)

Maildir.

Каталог должен содержать подкаталоги «cur» и «tmp»

host Адрес pop3 сервера Для Москвы 192.168.19.4
username Имя пользователя
password Пароль
keep Не удалять письма с сервера

Возможные значения:

0 (По умолчанию)

1

Включайте только для тестирования!

uidl Использовать команду протокола POP3 «UIDL» вместо «LIST»

Возможные значения:

0 (По умолчанию)

1

instances Количество одновременно скачиваемых писем

По умолчанию 1

Используйте с осторожностью. Обычно на серверах ограничивается количество одновременных подключений

Этап smtp

Этап отправки писем

Должен содержать (помимо тэга ) один или несколько тэгов со следующими параметрами

Имя параметра Описание Комментарий
source Каталог, c письмами на отправку. (файлы писем ищутся в подкаталоге «cur»)

Maildir.

Каталог должен содержать подкаталоги «cur» и «tmp»

sent Каталог, для сохраненияотправленных писем (файлы сохраняются в подкаталог «cur»)

Maildir.

Каталог должен содержать подкаталоги «cur» и «tmp»

host Адрес smtp сервера Для Москвы 192.168.19.3
username Имя пользователя
password Пароль
recipients Получатели письма Через запятую
from Отправитель письма
instances Количество одновременно скачиваемых писем

По умолчанию 1

Используйте с осторожностью. Обычно на серверах ограничивается количество одновременных подключений

Этап compose

Этап подготовки писем к отправке

Должен содержать (помимо тэга ) один или несколько тэгов со следующими параметрами

Имя параметра Описание Комментарий
in Каталог исходных файлов, на основе которых формируются письма Все пути к каталогам в конфигурации должны заканчиваться символом «/»
out Каталог, где будет сформировано письмо. После формирования помещается в подкаталог «cur»

Maildir.

Каталог должен содержать подкаталоги «cur» и «tmp»

subject Тема письма
recipients Получатели письма Через запятую
from Отправитель письма

Этап extract

Этап извлечения вложений из писем

Должен содержать (помимо тэга ) один или несколько тэгов . Единственный параметр тэга in, указывающий каталог maildir с принятыми письмами, которые необходимо обработать.

Внутри тэга in должны содержаться один или несколько тэгов rule с правилами извлечения вложений, со следующими параметрами

Имя параметра Описание Комментарий
from Отправитель письма Данное правило обработает письма от указанного отправителя
out Каталог, куда будет перенесено письмо. После обработки помещается в подкаталог «cur»

Maildir.

Каталог должен содержать подкаталоги «cur» и «tmp»

extractto Каталог, куда будут извлекаться вложения. Если в каталоге уже имеется такой файл, файл переименовывается в виде «№_filename.ext»

Этап execute

Этап запуска произвольной команды

Должен содержать (помимо тэга ) единственный тэг , со следующими параметрами

Имя параметра Описание Комментарий
command Команда для выполнения

Например

ping -c 2 192.168.19.20

verbose Писать ли в журнал вывод программы

Возможные значения:

0 (По умолчанию)

1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published