Парсинг имени файла вложения

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
SolBadGuy
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 30 май 2017, 00:27
Откуда: Ростов-на-Дону

Парсинг имени файла вложения

Сообщение SolBadGuy » 30 май 2017, 01:39

Всем доброго времени суток.
У нас в фирме, после телефонного разговора, от провайдера ip телефонии приходит письмо с вложенным mp3 файлом записанного разговора.
Раньше в теле письма указывались логины адресата и адресанта, типа i.familiya, которые прекрасно парсились и подставлялись в X-OTRS-Owner и X-OTRS-CustomerUser.
С недавних пор отбивку поменяли, и теперь отлаженная схема не работает. Но логины сохранились в имени вложения.
Суть вопроса:
Специального заголовка для вложений я не нашел, но нашел PostMaster::PreFilterModule###2-Match и zzzauto.pm, в который и записывабются параметры из PostMaster::PreFilterModule.
А так же нагуглил не совсем подходящий для моего случая код, но в котором описана работа с вложениями. Этот код предлагают поместить в NewTicket.pm". Но я пробовал добавлять в zzzauto.pm и в ручную и через SysConfig.

Код: Выделить всё

my $QueueID = "";
    for my $Attachment ( $Self->{ParserObject}->GetAttachments() ) {
    	if ( $Attachment->{Filename} =~ m{(?:\.zip|\.doc|\.docm|\.js)\z}i ) {
		$QueueID = "your_queue_id";
	}
	else {
		$QueueID = $Param{QueueID} || die "need QueueID!";
	}
    }
    my $Queue = $Kernel::OM->Get('Kernel::System::Queue')->QueueLookup(
                        QueueID => $QueueID,
                );
Пример имени вложения: "sip:i.familiya1@firma.ipprov.ru__sip:i.familiya2@firma.ipprov.ru__2017.05.29__21-29.mp3"
На основе приведенного кода я попробовал написать правило. Но если с регулярками я немного дружу, то pearl я совсем не знаю. Вот что вышло в итоге:
Изображение
Конечно это не работает. На сколько я понимаю из-за выражения в строке Match.
На форуме я не нашел решения данного вопроса.
Прошу знатоков ткнуть носом, или просто поделиться мудростью. Заранее спасибо.

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Парсинг имени файла вложения

Сообщение alexus » 01 июн 2017, 13:33

SolBadGuy писал(а):Этот код предлагают поместить в NewTicket.pm
И это правильно
SolBadGuy писал(а):Но я пробовал добавлять в zzzauto.pm и в ручную и через SysConfig
При чём тут код и конфиги?
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

SolBadGuy
OTRS Новобранец
Сообщения: 4
Зарегистрирован: 30 май 2017, 00:27
Откуда: Ростов-на-Дону

Re: Парсинг имени файла вложения

Сообщение SolBadGuy » 01 июн 2017, 15:20

alexus писал(а):
SolBadGuy писал(а):Но я пробовал добавлять в zzzauto.pm и в ручную и через SysConfig
При чём тут код и конфиги?
Тут это где?
Мне казалось что код обычно напрямую связан с конфигами, так как вторые почти целиком состоят из первого.
Ваш вопрос должен привести меня к самостоятельному решению проблемы каким либо образом, или он просто риторический?

Под SysConfig я подразумевал раздел в Web-интерфейсе OTRS: Admin->System Administration->SysConfig->Core::PostMaster::PreFilterModule###2-Match
А так же утверждал что настройки из этого раздела отображаются в zzzauto.pm. Всю информацию описал и дополнил скринами.

Если вам видно что автор вопроса где то буксует, то зачем ему задавать вопросы, которые его еще больше зароют, не дополняя их пояснениями. Можно немного конкретики?

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Парсинг имени файла вложения

Сообщение alexus » 01 июн 2017, 15:46

Вам нужно внести изменения в логику работы NewTicket.pm. Его и надо править, конфиги тут почти(детально не смотрел) не при чём.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

Ответить