===== Скрипты поиска почты по всей организации 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}}