Оповещение пользователей


#1

Первоочередная задачаработы в iTop была - чтобы приходили оповещения на почту диспетчеру, который назначает заявки инженерам.
Делал настройку через триггеры, но в поле “Кому”, насколько я понимаю, нельзя вставить константу (чтобы всегда одному и тому же человеку приходило письмо, независимо от создателя заявки)
Да и если находит почту у Инициатора, то не может отправить письмо, выдавая ошибку:
Error: Connection could not be established with host smtp.mail.ru [php_network_getaddresses: getaddrinfo failed: Name or service not known #0]
Либо
Error: Connection to smtp.mail.ru:465 Timed Out
В файле конфигуации все данные внесены верно, насколько я могу судить. Кто делать в подобной ситуации - не знаю, может тут кто подскажет (особенно по поводу константы в поле “Кому”)


#2

Здравствуйте.

  1. Константу можно сделать. Выбирайте всегда “Персону” с конкретным идентификатором.
  2. Это вам нужно разбираться с функцией отправки почты.

#3

По поводу первого пункта: Прописываю в поле “Кому” - “SELECT Person WHERE id=002” (у пользователя в Персоне в поле “ID сотрудника” именно этот номер). Но триггер такую запись не распознаёт совсем, оставляя поле “Кому” при срабатывании пустым, на что и ругается. Либо должен быть другой идентификатор, который неизвестно откуда взять?


#4

Очень странно. Может у выбираемой персоны не указана электронная почта.
Я воспроизвел Вашу ситуацию у себя на тестовом контуре, все работает.

Вот мои настройки
image


#5

Почта точно указана. Разве что статус был “Тест”(но со сменой на “Включено” ничего не меняется), и не было заполнено “Ответить на”(хотя поле не обязательное)


#6

Тестом выяснил, что поле “ID сотрудника” никак не отображает реального ID внутри системы. И этот ID можно узнать только экспериментальным путём

Теперь триггер может определить кому отсылать, но не отправляет письмо, ссылаясь на ошибку:
Error: Connection could not be established with host smtp.mail.ru [php_network_getaddresses: getaddrinfo failed: Name or service not known #0]

Возможно itop не может подключиться к smtp мейла? Хотя и порт, и протокол шифрования с реквизитами доступа прописаны


#7

Поле “ID сотрудника” и id это не одно и то же. id это уникальный идентификатор объекта в системе, увидеть который можно в адресной строке в браузере, когда открыта карточка объекта.

UPD: чтобы не морочиться с id просто укажи email в запросе: SELECT Person WHERE email = 'user@example.com'. А для удобства дальнейшего использования можно добавить в запрос ещё два условия: AND status = 'active' AND notify = 'yes'. Будет выбираться активная персона с включенными уведомлениями.


#8

Спасибо.
А как настроить отправку сразу нескольким персонам, если они не состоят в одной группе? Сразу несколько условий через AND в этом поле не работают, как я понимаю.

Ну и да, по поводу ошибки подключения через smtp - в графе “email_transport_smtp.encryption” я указывал как и везде пишут - “SSL/TLS”, однако такую запись itop не понимает. С ssl всё заработало (tls-шифрование выдавало так же ошибку)


#9

Через OR или через IN ('email1', 'email2').


#10

Спасибо большое.
Ну и последнее, можно ли где-нибудь найти подробную инструкцию по OQL на itop (чтобы понимать какие переменные есть в системе). На сайте самого itop всё очень поверхностно, и без подробного описания каждого поля


#11

По самому OQL вот ман: https://www.itophub.io/wiki/page?id=2_5_0%3Aoql%3Astart.
Где какие поля и значения, можно посмотреть в айтопе в Инструменты администратора -> Модель данных. На вкладке “Критерии поиска” показано, какие операторы для каких полей можно использовать.