El cuerpo correcto del correo comienza con 谢谢 en UTF-8 (el cuerpo completo es mucho más largo), y el texto dañado es m6Mtyx7x7j+rjuVupyY= en base64.
Los correos en la base de datos ya están en este estado dañado. Al comparar ese con el del servidor de correo, encuentro que el correo fue reescrito, y sospecho que el módulo de limpieza de correo (email cleaner module) alteró el correo. (Pero no tengo suficientes conocimientos de Ruby para entender su característica única de codificación de cadenas).
No. Vienen de Tencent y Netease. El correo original (lo mantuve en el servidor de correo para investigar este problema) no tiene problemas ni con mutt ni con la librería Mail de Ruby.
Lo he entendido. La part de un Mail tiene la información de charset correcta, pero de alguna manera su body no la obtiene y trata los bytes como ASCII-8BIT.
sed -i 's/part.body.decoded/part.body.decoded.force_encoding(part.charset || "utf-8")/' /var/www/discourse/lib/email/cleaner.rb
[quote=“lilydjwg, post:1, topic:392868”]Los correos en la base de datos ya están en este estado dañado.
[/quote]
Recientemente solucioné este problema con:
[quote=“lilydjwg, post:5, topic:392868”]La parte part de un Mail tiene la información de charset correcta, pero de alguna manera su body no la obtiene y trata los bytes como ASCII-8BIT.
[/quote]
¿Es este correo electrónico (asumiendo que es uno que no fue estropeado por Discourse) algo que me puedas pasar para que podamos investigar más a fondo y posiblemente usarlo como caso de prueba?