Начиная с версии 0.84.3, темы заявок, которые GLPI забирает из почтового ящика техподдержки, стали некорректно отображаться. Думал, в 0.84.4 поправят, но ошибка осталась. Пришлось разбираться.
Когда отправляешь в кодировке UTF-8, всё в порядке, а когда в KOI8-R (стоит по умолчанию в Outlook) – кодировка бьётся. Выяснил, что за обработку писем отвечает файл /usr/share/glpi/inc/mailcollector.class.php
.
Скачал версии 0.84.2 и 0.84.4, и открыл два файла mailcollector.class.php
из разных версий в WinMerge — это программа для сравнения текстовых файлов. Оказалось, что в новой версии GLPI закомментировали старый рабочий код, декодирующий письма, и оставили от него только одну строку:
// $decodedStr .= mb_convert_encoding($mimeStr->text, $targetCharset,
// (in_array($mimeStr->charset, $encodings)
// ? $mimeStr->charset : $fallbackCharset));
// Try not to use fallback charset in order to manage encodings not listed by mbstring
$decodedStr .= mb_convert_encoding($mimeStr->text, $targetCharset);
Я раскомментировал три верхние строки и закомментировал нижнюю, и всё стало в порядке.
Upd: в версии 0.84.5 эту проблему исправили.