我正在调查一些从邮件列表导入电子邮件后内容被省略的帖子。有些邮件使用“~~~~~~~~~~~~~~~~”行来包裹标题或章节,而该分隔符首次单独出现及其下方的所有内容都会被从 Discourse 帖子中省略。
检查帖子中的原始邮件时,我可以看到原始的 base64 编码邮件,切换到“文本”标签页后,我发现它已完整解码,没有任何省略。
./launcher enter app
rails c
Post.find_by(id: 154678)
=> #<Post:0x000055b8da925e08
...
通过 Rails,我可以看到 raw 列在第一个“~~~~~~~~~~~~~~~~”之前立即停止,而 cooked 列显然包含与 raw 相同的内容,但已转换为适当的 HTML 格式。我尝试更改了一些与修剪邮件相关的设置,但不确定如何测试这些设置是否生效。
据我理解,对帖子执行“重建 HTML”或在 Rails 中运行 Post.find_by(id: 154678).rebake! 会读取 raw 列的内容并生成 HTML,从而设置 cooked 列。但我不确定它是否会重新处理 raw_email 列的内容,因此不确定如何测试更改的设置是否产生了效果。
如果 rebake! 不会重新处理 raw_email,我该如何让 Discourse 重新处理帖子的 raw_email,以便确保我排查问题的方法正确?
如果您有任何关于如何防止内容被省略的建议,也欢迎提出。