Zammad: Японская кодировка 7-битного iso-2022-jp обрабатывается некорректно

Созданный на 27 февр. 2019  ·  29Комментарии  ·  Источник: zammad/zammad

Информация:

  • Используемая версия Zammad: последняя версия 2.9.x
  • Способ установки (исходный код, пакет, ..): пакет
  • Операционная система: CentOS 7.1
  • База данных + версия: Postgres
  • Версия Elasticsearch:
  • Браузер + версия: все браузеры
  • ID билета: # 1042716 (1047950, 1076276)

Ожидаемое поведение:

Нормальная обработка всех сообщений электронной почты на японском языке.

Фактическое поведение:

При обработке почтовых сообщений, закодированных кодировкой 7-bi iso-2022-jp, сообщение декодируется некорректно.

Предполагая проблему с анализатором почты.

Другие комбинации кодировки / кодировки работают нормально.

Шаги по воспроизведению поведения:

Отправить письмо на почтовый ящик, подключенный к очереди Zammad в 7bit / iso-2022-jp

Как уже объяснялось, комбинация 7-битной кодировки и кодировки iso-2022-jp в сообщении электронной почты приводит к искажению текста в соответствующем билете.

Например, ниже представлен открытый текст электронного письма:

Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

=1B$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=3D|$7$F$/$@$5$$!#=1B(B

--_000_SL2P216MB032969A22C6D22226A7B3613EF740SL2P216MB0329KORP_
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-2022-=
jp">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Meiryo, =1B$B%a%$%j%*=1B(B, &quot;Hiragino Sans&=
quot;, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
=1B$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=3D|$7$F$/$@$5$$!#=1B(B</div>
</body>
</html>

почтовый клиент покажет его как правильно отформатированное HTML-сообщение:

このアドレスへのメルマガを解除してください。

Вот как Zammad покажет тело билета:

$B$3$N%"%I%l%9$X$N%a%k%^%,$r2r=|$7$F$/$@$5$$!#(B
bug mail processing prioritised by payment third party issue verified waiting for feedback

Самый полезный комментарий

Привет, @lsergei! Великий @mantas нашел обходной путь для проблемы с почтовым решить эту проблему в нашем коде. Устойчивое решение в самом драгоценном камне было бы намного лучше, но огромная задача, которую мы не можем решить прямо сейчас. Тем не менее, не стесняйтесь протестировать его в предстоящем выпуске Zammad 3.4 примерно через 2 недели.

Все 29 Комментарий

Konnichiwa @lsergei - не могли бы вы предоставить полный пример письма, которое мы затем можем использовать для нашего набора тестов? Это очень поможет. Спасибо!

Konnichiwa @thorsteneckel , спасибо за быстрый ответ.

Как вы хотите, чтобы я переслал вам проблемное сообщение? Просто пересылка может (и, скорее всего, будет) заменить заголовки

Обычно в почтовой программе есть возможность сохранять необработанное сообщение в формате .eml . Например, для Apple Mail это всего лишь File -> Save As . Обязательно откройте этот файл в обычном текстовом редакторе и удалите все конфиденциальные данные, прежде чем загружать его сюда.

@thorsteneckel спасибо за объяснение. См. Сообщение в приложении.
Поскольку GitHub не поддерживает загрузку файлов eml, расширение файла было изменено на txt.

メ ル マ ガ 解除 .txt

Domo arigato!
Проблема подтверждена, мы обновим ее, как только сможем над ней работать.

Итак, основная причина этой проблемы заключается в том, что зависимость, которую мы используем для синтаксического анализа писем , не поддерживает письма в кодировке ISO 2022 JP . Есть дополнительный гем, который обеспечивает эту поддержку более старым версиям, но несовместим с (последней) версией, которую мы используем .
Есть устаревший и ожидающий обработки запрос на извлечение 6-летней давности, к которому я добавил комментарий, чтобы попросить инструкции, как оттуда забрать. Жду отзывов ...

Можем ли мы еще раз оценить, возможно ли на данный момент рабочее решение?

В почтовом геме не было соответствующих изменений, поэтому мой последний комментарий (к сожалению) все еще в силе.

Мантас, не могли бы вы взглянуть, может быть, есть решение, чтобы обойти это без взлома более 7-летних взломанных драгоценных камней? Может быть, конверсия была бы возможна раньше или около того.

Привет, @lsergei! Великий @mantas нашел обходной путь для проблемы с почтовым решить эту проблему в нашем коде. Устойчивое решение в самом драгоценном камне было бы намного лучше, но огромная задача, которую мы не можем решить прямо сейчас. Тем не менее, не стесняйтесь протестировать его в предстоящем выпуске Zammad 3.4 примерно через 2 недели.

Привет, @thorsteneckel и @mantas - спасибо, ценю ваши старания! Протестируем и дадим вам обратную связь.

С нетерпением жду нового релиза

Привет. Я новичок в заммаде.
Думаю, в версии 3.6.x эта проблема не решена.
мой сервер zammad показывает похожие искаженные символы.

@hiromayu Можно ли получить исходный файл eml электронного письма с указанными выше кодировками, которое все еще не работает в Zammad 3.6? Вы можете отправить этот eml на support [at] zammad [dot] com со ссылкой на эту проблему. Тогда мы посмотрим.

Спасибо.

Привет, MrGeneration. Отправляю eml файл в поддержку.

@hiromayu @MrGeneration эта проблема еще не решена. Я вроде как сдался (есть кто-то, кто исправит эти письма вручную)

В качестве небольшого продолжения:
Благодаря @hiromayu и образцу письма мы смогли определить проблему.

Он косвенно покрывает эту проблему и проблему №3096.

Привет. Спасибо вам всем.
Думаю, эта проблема решается применением патча.
https://github.com/kuroda/mail-iso-2022-jp.
мой сервер Zammad отлично обрабатывает почту, которую я отправил в службу поддержки.

@hiromayu спасибо за обновление! Могу я узнать, как вы применили патч? Только что установили гем, как описано в статье на github?

Я забыл сказать, что не мог различить причину, по которой исправлял эту проблему.
Я применил патч и обновил zammad server. Поэтому один из них или оба устранили проблему.
Приложил патч по команде.
sudo zammad запустить gem install mail-iso-2022-jp
и перезагрузитесь.

Спасибо @hiromayu . Просто установил драгоценный камень, но якобы простая установка не решит проблему. Могу я узнать, что вы изменили в server.so?

Мне жаль. Я ничего не делал с server.so. Я просто устанавливаю этот патч и обновляю сервер zammad, представленный программой обновления ubuntu.
если бы просто установка патча не сработала. это слишком рано, чтобы решить, проблема исправлена. Я проверю свою электронную почту через несколько дней.

@hiromayu я понимаю. Я сделал то же самое и прослежу, исчезнет ли проблема.

Большое спасибо!

Просто важное примечание: имейте в виду, что это действие небезопасно для обновления .
Так что, если вы действительно хотите придерживаться решения, а в вашей системе не установлено исправление # 3096, мы не сможем вас остановить.

Однако все ошибки, которые появляются из-за этого, больше не подлежат исправлению.

@MrGeneration из того, что предположил @hiromayu, это на самом деле безопасно для обновлений, поскольку нет модификации кода.

Возможно, закрывать заявку слишком рано, но на сегодняшний день у меня нет проблем после установки указанного драгоценного камня.

Вы изменили окружающую среду.
При этом, если у вас нет определенной настройки установки исходного кода, это действие небезопасно для обновления.

Привет! Чтобы предоставить некоторую техническую подготовку: установка драгоценного камня не имеет никакого эффекта сама по себе. Он не загрузится без дальнейших действий / изменений кода. Поэтому я предлагаю снова удалить установленный гем, чтобы восстановить ванильное окружение. Я подозреваю, что предоставленное исправление # 3096, созданное 7 дней назад, решило вашу проблему @hiromayu 🤔

Спасибо тебе за все. Итак, обновление Zammad стало причиной устранения этой проблемы.
Прошу прощения за неверную информацию.
Я переустановлю сервер Zammad и проверю результат. и сообщить, что это действительно исправлено через несколько дней.

Привет. У меня есть еще один пример этой проблемы.
но, думаю небольшая разница до обновления заммада.
до обновления все символы японского языка были искажены. но теперь тема письма верна. искажен только основной текст письма.
Что мне делать?

Пожалуйста, создайте новую проблему.
Это сложный вопрос, который может показаться одним и тем же, но может иметь несколько иной характер.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги