Il corpo corretto dell’email inizia con 谢谢 in UTF-8 (il corpo completo è molto più lungo), e il testo danneggiato è m6Mtyx7x7j+rjuVupyY= in base64.
Le email nel database sono già in questo stato danneggiato. Confrontando quella con quella del server di posta, trovo che l’email è stata riscritta, e sospetto che il modulo di pulizia delle email abbia confuso l’email. (Ma non ho abbastanza conoscenza di Ruby per capire la sua caratteristica unica di codifica delle stringhe.)
No. Provengono da Tencent e Netease. L’email originale (l’ho conservata sul server di posta per indagare su questo problema) non presenta problemi né con mutt né con la libreria Mail di Ruby.
Ho capito. La part di una Mail ha le corrette informazioni sul charset, ma in qualche modo il suo body non le acquisisce e tratta i byte come 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”]Le email nel database sono già in questo stato danneggiato.
[/quote]
Ho recentemente risolto questo problema con:
[quote=“lilydjwg, post:5, topic:392868”]La part di una Mail ha le corrette informazioni charset ma in qualche modo il suo body non le ottiene e tratta i byte come ASCII-8BIT.
[/quote]
Puoi passarmi questa email (supponendo che sia una che non è stata danneggiata da Discourse) in modo che possiamo indagare ulteriormente e possibilmente usarla come caso di test?