Le corps correct de l’e-mail commence par 谢谢 en UTF-8 (le corps complet est beaucoup plus long), et le texte endommagé est m6Mtyx7x7j+rjuVupyY= en base64.
Les e-mails dans la base de données sont déjà dans cet état endommagé. En comparant celui-ci avec celui du serveur de messagerie, je constate que l’e-mail a été réécrit, et je soupçonne que le module de nettoyage d’e-mails a brouillé l’e-mail. (Mais je n’ai pas assez de connaissances en Ruby pour comprendre sa fonctionnalité unique d’encodage de chaînes de caractères.)
Non. Ils proviennent de Tencent et Netease. Le courriel original (je l’ai conservé sur le serveur de messagerie pour enquêter sur ce problème) n’a aucun problème avec mutt ou la bibliothèque Mail de Ruby.
J’ai compris. La part d’un Mail a la bonne information charset, mais d’une manière ou d’une autre, son body ne l’obtient pas et traite les octets comme 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”]Les mails dans la base de données sont déjà dans cet état endommagé.
[/quote]
J’ai récemment résolu ce problème avec :
[quote=“lilydjwg, post:5, topic:392868”]La partie part d’un Mail possède les informations charset correctes mais, d’une manière ou d’une autre, son body ne les récupère pas et traite les octets comme ASCII-8BIT.
[/quote]
Pouvez-vous me transmettre cet e-mail (en supposant que ce soit un e-mail qui n’a pas été corrompu par Discourse) afin que nous puissions enquêter plus avant et éventuellement l’utiliser comme cas de test ?