Шаблоны писем в скриптах
При создании скриптов можно настроить автоматическую отправку писем на ваш email об их успешном выполнении. В письме можно передавать параметры и переменные, которые используются в скриптах.
Настройка шаблонов писем
Шаблон письма — это HTML-код, который отправляется на ваш email после запуска скрипта.
Шаблоны писем настраиваются при создании скрипта. Для этого:
- Перейдите в Скрипты → Создать скрипт.
- Введите настройки и тело скрипта. Подробнее см. Создание скриптов.
- В разделе Уведомление на E-mail нажмите Добавить и настройте шаблоны писем.
- По умолчанию доступна настройка шаблона письма на английском языке — Письмо для EN. Для создания шаблона письма на русском нажмите Добавить письмо для RU.
- Укажите Тему письма для каждого шаблона.
- Настройте свой шаблон в поле Контент.
- По умолчанию в этом поле указаны HTML-блоки, которые вы можете использовать для создания собственного шаблона. Эти блоки являются частью глобального шаблона, в котором определён дизайн письма — логотип VMmanager, шрифты, цвет текста и кнопок. В текущей реализации возможности редактировать глобальный шаблон нет.
- Кнопка Предпросмотр позволяет посмотреть внешний вид письма, которое получит пользователь.
- Для сохранения скрипта и шаблона письма нажмите Создать.
Внимание! При одновременном запуске нескольких скриптов на одной ВМ письмо можно будет отправить только по одному скрипту.
Параметры и переменные скриптов в шаблонах
Все параметры и переменные, которые используются в скрипте, могут также использоваться в шаблонах писем. Подробнее о переменных см.Переменные для скриптов.
Это позволяет подставить используемые параметры в письмо пользователю. Например, при выполнении скрипта генерируется логин и пароль. Тогда эти параметры можно указать в шаблоне письма.
Чтобы передать параметры из скрипта в шаблон, используйте в скрипте следующие конструкции:
- vm_export_variable <var_name> <var_value> — используется для передачи переменной в шаблон письма. Например, в скрипте генерируется пароль и его значение можно отправить в письме;
- <var_name> — имя переменной, как она будет указываться в письме. Например, password.
- <var_value> — значение переменной. Предпочтительно указывать в кавычках, чтобы синтаксис bash правильно определил указанную переменную. Значение переменной может задаваться или генерироваться внутри скрипта.
Внимание! Все переменные (из скрипта, глобальные/локальные, параметры), которые нужно добавить в шаблон письма, необходимо указать в теле шаблона в формате ($var_name).
- vm_export_file <file_name> <file_path> — используется для передачи в шаблон письма файла, который генерируется внутри скрипта. Файл отправляется во вложении к письму и внутри шаблона письма указывать его не нужно;
- <file_name> — название файла, как оно будет указываться в письме.
- <file_path> — путь до файла.
- vm_export_dir <dir_name> <dir_path> — используется для передачи в шаблон письма директории в формате архива .tar. Архив отправляется во вложении к письму и внутри шаблона письма указывать его не нужно.
- <dir_name> — название архива .tar.
- <dir_path> — путь до директории.
Внимание! Конструкция vm_export_dir не работает на виртуальных машинах с Windows, а также на ВМ, в которых не установлен tar.
По умолчанию максимальный размер прикрепляемого к письму файла/архива — 2 МБ.
Пример настройки шаблона письма
В качестве примера приведён скрипт, который создаёт и компилирует файл на языке C++:
dnf install -y gcc git gcc-c++
mkdir /root/example
cd /root/example
echo '#include <iostream>
int main() {
std::cout << "Hello world!";
}' > ./example.cpp
g++ example.cpp -o /root/example/example
/root/example/example > /tmp/test.txt
output="$(cat /tmp/test.txt)"
vm_export_variable output "$output"
vm_export_file output.txt /tmp/test.txt
rm -rf /tmp/test.txt /root/example
В письме выводится информация: IP-адрес виртуальной машины, на которой компилируется файл, версия сборки и вывод:
<h1 style="margin-bottom: 10px">Ваш файл скомпилирован</h1>
<div>
<p><b>Скомпилировано на:</b> ($IP)</p>
<p><b>Версия сборки:</b> ($build_ver)</p>
<p><b>Вывод:</b> ($output)</p>
</div>
Для этого используется глобальная переменная $IP, параметр скрипта build_ver и переменная, заданная в скрипте output.