Страница 1 из 1

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

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

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

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

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

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

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

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

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

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

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

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


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

Сервис:<ВКС>