Фильтры Postmaster-а и RegEx-ы

Только для готовых решений! Пожалуйста, не используйте для вопросов и обсуждений!

Модератор: ykolesnikov

Ответить
paver
OTRS Мастер
Сообщения: 507
Зарегистрирован: 22 апр 2015, 06:45
Откуда: Томск
Благодарил (а): 7 раз
Поблагодарили: 45 раз

Фильтры Postmaster-а и RegEx-ы

Сообщение paver » 30 окт 2019, 11:54

Задача: извлечь из тела письма специальным образом помеченный текст и выставить его в качестве X-OTRS- заголовка письма.

Зачем это нужно? Ну, например, некоторым клиентам вы хотите дать возможность указывать в письме сервис заявки, и указанный сервис должен быть автоматически установлен для создаваемой заявки. Или вытащить из письма некоторые сведения и поместить их в динамическое поле.

Пример: присваиваем заявке сервис, заданный в строке письма вида
Сервис:<имя_сервиса>

1. Создаем новый фильтр постмастера.
2. Название и признак остановки проверки после совпадения указываем исходя из дополнительных требований. Например, имя делаем первым в списке - 00-сервис, проверку - не прекращать.

3. Добавляем условие фильтра.
В поле "Найти поле заголовка" - выбираем Body.
Значение для сравнения - Сервис:<(?<Service>.+)>

В данном примере "Service" - это имя переменной, в которую будет помещен текст из тела письма, содержащийся в угловых скобках после ключевой фразы "Сервис:"

Конструкция ".+" требует обязательного указания сервиса (между угловыми скобками должен быть задан хотя бы один символ). Если допускаете возможность оставления этого поля пустым - используйте конструкцию ".*"

В подсказке OTRS на странице редактирования фильтра приведен пример использования конструкции "\w+", но она не сработает, если в имени сервиса будут встречаться не латинские символы.

Если желаете устанавливать и другие параметры заявки, например, владельца, очередь, приоритет, - действуйте по аналогии. Добавляйте еще условия поиска в Body, заносите в нужные переменные помеченный текст.

4. Выставляем заголовок письма.
В поле "Выставить заголовок письма" выбираем X-OTRS-Service
В поле значения - [**\Service**]

5. Сохраняем фильтр.


Теперь пользователь в письме отдельной строкой может указать требуемый сервис, например:

Сервис:<ВКС>
--
OTRS 6.0.22

Ответить