Выполнение команды Email::Receiver.new(rawmessage).select_body возвращает:
=> ["", "", 2]
Таким образом, я почти уверен, что происходит следующее: Discourse ошибочно выбирает пустую часть в формате plain/text в качестве тела сообщения, вероятно, эту:
--Sig_/gizYC_1dGsAzUHvksdaMIe2
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
что привело бы к созданию некорректного сообщения.
Нам потребуется провести небольшое расследование по этому вопросу и, вероятно, использовать этот случай в качестве тестового примера.