===== Скрипт загрузки подписей CGP ===== Задачу установки подписи в формате //HTML// встроенным функционалом //CGP// не решить. Вендор предоставляет скрипт загрузки подписи по запросу. Вопросам использования данного скрипта посвящен этот материал. ==== Зависимости ==== Прежде, чем успешно использовать //Python//-скрипт - потребуется установить необходимые зависимости, которые описаны в файле //requirements.txt//. CGPCLI et_xmlfile numpy openpyxl pandas python-dateutil pytz six tzdata Пример установки: pip3.11 install openpyxl ==== Подготовка к запуску скрипта ==== Все основные настройки задаются в файле: //signature.conf//. Вот его примерное содержимое: # файл конфигурации для утилиты signature.py [info] # адрес сервера (по умолчанию server = 127.0.0.1) server = cgp.domain.ru # логин администратора user = admin@postmaster.local # Пароль администратора pass = Passw0rd # имя домена (по умолчанию @testdomain. если домен основной, вводить не обязательно) domain_name = @domain.ru # название файла с изображением в кодировке base64 img = img.txt # название файла со списком пользователей, которым необходимо добавить подпись xlsx = userlist.xlsx # название файла с простой подписью signature = simple_signature.txt # название файла с html подписью signature_html = html_signature.html [attr] # словарь соответствия атрибутов (слева - используемое название для вставки в файлы-подписи; справа - название атрибутов в CGP) attrs_dict = { "__name__":"RealName", "__company__":"o", "__department__":"ou", "__l__":"l", "__mail__":"mail", "__st__":"st", "__telnum__":"telephoneNumber", "__title__":"title", "__web__":"defaultWebPage" } :!: //Примечание 1:// логин для пользователя //postmaster// необходимо задавать именно так: //ЧТО-НИБУДЬ@postmaster.local//. Во время сеанса по протоколу //PWD// данное имя будет транслировано в //postmaster//. :!: //Примечание 2:// не забыть @ перед именем домена. :!: //Примечание 3:// //userlist.xlsx// - это именно полноценный Excel-файл, содержащий соответствующую разметку (не просто //CSV//). ==== Содержимое подписи ==== === Изображение (логотип) === Изображение или логотип задается в файле //img.txt// в //base64//. Пример содержимого: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAABQCAYAAABcbTqwAAAACXBIWXM ... NMMJVKAAAAAElFTkSuQmCC В //Linux// мы можем создать такое изображение следующим образом: PNG echo -n 'data:image/png;base64,' > img.txt base64 -w 0 logo.png >> img.txt JPG echo -n 'data:image/jpeg;base64,' > img.txt base64 -w 0 logo.jpg >> img.txt === Текстовая подпись === Текстовая подпись содержится в файле //simple_signature.txt//. Пример: Test signature :!: //Примечание:// для загрузки русского текста из этого файла нужно найти решение, т.к., если просто указать русский текст - получим ошибку: CGP set account prefs for the user ivanov Failed === HTML-подпись === В качестве HTML-подписи скрипт установит ровно тот код, который существует в файле: //html_signature.html//. Пример условного шаблона HTML-подписи и файла //html_signature.html//.
Рога и копыта
Иванов П.И.
Системный администратор
ИТ
Рога и копыта
Москва
Тел.: 89026556656
Вн. номер: 3322
E-mail: ivanov@domain.ru
Web: http://test.domain.ru
==== Файл списка пользователей ==== Вот так выглядит содержимое //Excel//-файла с единственным пользователем, подпись которому требуется загрузить. ;#; {{:cgp:userlist_cgp_excel.jpg|}} ;#; К имени данного пользователя при обработке будет добавлена доменная часть, указанная в файле конфигурации и содержащаяся в //domain_name//. ==== Атрибуты из конфигурации ==== Если нам требуется заполнить данные в автоматическом режиме, то в шаблон (как текстовый, так и //HTML//) можно подставить описанные в конфигурации названия, к примеру: __name__, __title__ и т.д., которые будут замменены данными пользователя из //CGP// (соответствующими заданным атрибутам в конфиге //signature.conf//). ==== Запуск скрипта и отладка ==== python3.11 signature.py Скрипт логгирует свои действия в папке: //log_files//. {{tag>CommuniGate Mail Python HTML}}