Я изучаю некоторые темы, в которых после импорта писем из рассылки отсутствует часть контента. В некоторых письмах заголовки или разделы обрамлены строками из тильд (“~~~~~~~~~~~~~~~~”), и первая такая строка, идущая отдельной строкой, а также всё, что следует за ней, исключается из поста в Discourse.
При просмотре письма в теме я вижу исходное письмо в кодировке base64. Переключившись на вкладку «Текст», я вижу, что оно было декодировано без каких-либо пропусков.
./launcher enter app
rails c
Post.find_by(id: 154678)
=> #<Post:0x000055b8da925e08
...
С помощью Rails я вижу, что колонка raw обрывается непосредственно перед первой строкой “~~~~~~~~~~~~~~~~”, а колонка cooked, очевидно, содержит то же самое, что и raw, но в формате HTML. Я пробовал изменять некоторые настройки, связанные с обрезкой писем, но не уверен, как проверить, дают ли они какой-либо эффект.
Как я понимаю, использование функции «Восстановить HTML» для поста или выполнение команды Post.find_by(id: 154678).rebake! в консоли Rails приведёт к тому, что содержимое колонки raw будет использовано для генерации HTML, и значение cooked будет обновлено. Однако я не знаю, будет ли при этом повторно обрабатываться содержимое колонки raw_email. Поэтому я не уверен, как проверить, оказывают ли изменённые настройки какой-либо эффект.
Как мне заставить Discourse повторно обработать raw_email поста, если rebake! этого не делает, чтобы я мог быть уверен в правильности диагностики?
Если у вас есть какие-либо мысли о том, как предотвратить пропуск контента, они, конечно же, тоже будут приветствоваться.