===== Скрипты поиска почты по всей организации CGP ===== ==== Предварительные требования ==== //CGP// не имеет встроенных в само приложение средств поиска почты по всей организации. Для решения подобной задачи можно использовать скрипт поиска //cgp_mail_search// (предоставляется по запросу вендором). Данный материал посвящен работе этого скрипта. Скрипт ориентирован на работу с //Python >= 3.11//. Если предполагается использование более старых версий, необходимо установить пакет //tomli//. ПРИМЕЧАНИЕ: на //RedOS Python// + //PIP// можно установить так: dnf install python3.11.x86_64 python3.11 -m ensurepip --upgrade python3.11 --version python3.11 -m pip --version ==== Запуск скрипта ==== Скрипт можно запускать напрямую интерпретатором //Python// вот так: python3.11 search.py Или через выполнения файла: ./start.sh Данный скрипт проводит проверку необходимых компонентов и может установить отсутствующие (но это не точно). ==== Принципы работы поиска ==== Конфигурационные параметры поиска задаются в файле files/config.toml Этот файл необходимо настроить перед запуском скрипта, поскольку в нём содержатся необходимые для работы параметры, без которых скрипт не запустится. В общем случае, скрипт работает примерно так: при первом запуске //search.py// скрипт предложит интерактивно сформировать список учётных записей (если файл //users.csv// отсутствует), В КОТОРЫХ будет выполняться поиск либо их всех доменов, либо из списка конкретных доменов. Список доменов должен содержаться в файле: files/domains.csv А список пользователей, которых обнаружит скрипт в файле: files/users.csv После формирования списка пользователей, либо обработки существуюшего - скрипт произведет поиск по заданным в //config.toml// критериям и интерактивно предложит действия, которые могут быть произведены с обнаруженной почтой. Примеры таких действий: копирование почты в другой ящик, удаление почты и т.д. ==== Настройки конфигурационного файла config.toml ==== В первую очередь необходимо прописать сервер, порт и параметры SSL. Скрипт использует протокол //XIMSS//. Порт здесь будет аналогичным порту, на котором работает интерфейс пользователя (HTTPU). При отключенном SSL, соответственно, используется порт HTTP-версии интерфейса. [server] host = "cgp.domain.ru" port = "8100" use_ssl = false Теперь зададим информацию о логине, с которым обращаемся к //CGP//: [login_info] user = "postmaster" password = "Passw0rd" Здесь находится путь к файлу с учётными записями пользователя: [files] users = "users.csv" В секции //target// мы задаем почтовый ящик и папку в нем, в которую будем копировать результаты, если выберем это действие на этапе действий скрипта. Можно задать и флаги, которые будут применены к найденной почте, если мы выберем соответствующее действие. [target] mailbox = "~user1@domain.ru/SEARCH" recipients_forward_redirect = "" # пример flags = "Unseen" flags = "" :!: Перед ящиком обязательно должна быть тильда. В секции //filter// мы задаем различные критерии поиска, вроде темы, вложения, дат и пр. Перечислять их все не вижу смысла, укажу только самое базовое - пример строки поиска. [filter] # Искомая строка string = '"RADIUS"' ==== Типичный workflow ==== 1. Мы настраиваем //files/config.toml// с параметрами сервера и поиска. \\ 2. Мы либо явно указываем пользователей, либо явно указываем домены (из которых сформируется список пользователей), либо запускаем скрипт с пустыми файлами //domains.csv// и //users.csv//, и просим скрипт при запуске самостоятельно сформировать список УЗ. \\ 3. Применяем действия, если поиск увенчался успехом (если нет, скрипт не будет их предлагать).\\ {{tag>CommuniGate Mail RedOS Python}}