Обработка имен отправителей и получателей

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

Модератор: ykolesnikov

Ответить
Lirakona
OTRS Новобранец
Сообщения: 10
Зарегистрирован: 10 янв 2014, 17:03
Откуда: Челябинск

Обработка имен отправителей и получателей

Сообщение Lirakona » 14 янв 2014, 06:44

К примеру, в настройках электронной почты отображаемое имя указано как "Служба поддержки ООО Альфа". Однако в интерфейсе системы оно отображается как "Служба Поддержки Ооо Альфа".
Обработка.jpg
Обработка.jpg (32.4 КБ) 4689 просмотров
С наименованиями на латинице такого не происходит. Возможно кто-то задавался вопросом, где происходит такая обработка.
CSS и java скрипты мной были проверены, но возможно что-то пропустила.
С уважением, Ирина
OTRS 3.3.3, ITSM 3.3.3

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Обработка имен отправителей и получателей

Сообщение merkushov » 16 янв 2014, 09:28

Если в базе данных сохранено так же, то имеет смысл пройтись по pm модулю, который генерирует это сообщение.
Меркушов Виктор, perl программист

Lirakona
OTRS Новобранец
Сообщения: 10
Зарегистрирован: 10 янв 2014, 17:03
Откуда: Челябинск

Re: Обработка имен отправителей и получателей

Сообщение Lirakona » 17 янв 2014, 08:23

Я пока не могу понять как поля используемые в файлах .dtl связаны с базой данных. Например, $QData{"FromRealname"}. В базе нет поля с таким названием, и откуда оно выдирается и как обрабатывается не ясно.
С уважением, Ирина
OTRS 3.3.3, ITSM 3.3.3

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

Re: Обработка имен отправителей и получателей

Сообщение alexus » 18 янв 2014, 13:07

Мы как-то занимались проблемой ООО-Ооо. Но заказчик решил убрать ООО из имени отправителя :D . Точно понмю, что это преобразование на этапе отображения.
Lirakona писал(а):Я пока не могу понять как поля используемые в файлах .dtl связаны с базой данных. Например, $QData{"FromRealname"}. В базе нет поля с таким названием, и откуда оно выдирается и как обрабатывается не ясно.
Не все, что видно на экране, есть в базе. FromRealname вполне может быть комбинацией From+Realname, т.к. есть же еще и To+Realname.
Попробуйте команду

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

grep -rl Realname /opt/otrs/Kernel
Она покажет все файлы, где встречается Realname
С уважением,
Алексей Юсов

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? Спросите меня как!

Lirakona
OTRS Новобранец
Сообщения: 10
Зарегистрирован: 10 янв 2014, 17:03
Откуда: Челябинск

Re: Обработка имен отправителей и получателей

Сообщение Lirakona » 20 янв 2014, 08:06

Вероятно, мне не хватает знаний языка, потому что во всех этих файлах я не вижу функций или выражений, которые так обрабатывают текст. Причем только написанный на кириллице или смешанный.
Может быть программисты perl подскажут, на что можно обратить внимание, кроме u$1, uc(), ucfirst(). Java скрипты и css проверены на наличие capitalize.
С уважением, Ирина
OTRS 3.3.3, ITSM 3.3.3

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Обработка имен отправителей и получателей

Сообщение merkushov » 20 янв 2014, 13:36

Вот вам решение

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

diff --git a/Kernel/System/EmailParser.pm b/Kernel/System/EmailParser.pm
index b0c8901..c25630c 100644
--- a/Kernel/System/EmailParser.pm
+++ b/Kernel/System/EmailParser.pm
@@ -290,9 +290,11 @@ sub GetRealname {
     my $Realname = '';
 
     # find "NamePart, NamePart" <some@example.com> (get not recognized by Mail::Address)
-    if ( $Param{Email} =~ /"(.+?)"\s+?\<.+?@.+?\..+?\>/ ) {
+    if ( $Param{Email} =~ /"?(.+?)"?\s+?\<.+?@.+?\..+?\>/ ) {
         $Realname = $1;
 
+        $Realname =~ s/^\s+?(.+?)\s+?$/$1/g;
+
         # removes unnecessary blank spaces, if the string has quotes.
         # This is because of bug 6059
         $Realname =~ s/"\s+?(.+?)\s+?"/"$1"/g;
Меркушов Виктор, perl программист

Lirakona
OTRS Новобранец
Сообщения: 10
Зарегистрирован: 10 янв 2014, 17:03
Откуда: Челябинск

Re: Обработка имен отправителей и получателей

Сообщение Lirakona » 21 янв 2014, 05:59

Спасибо, Виктор, очень помогло) Тему, наверное, можно переместить в раздел Howtos.
С уважением, Ирина
OTRS 3.3.3, ITSM 3.3.3

Ответить