Le email rifiutate sono illeggibili

Quando controllo /admin/email-logs/rejected del mio sito self-hosted, trovo che i corpi delle email rifiutate sono così:

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.)

C’è qualche possibilità che questi messaggi provengano da un server Exchange..?

2 Mi Piace

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 recentemente ricevuto un’email di rifiuto da un server Exchange, e al contrario non aveva questo problema.

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
1 Mi Piace

[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?

1 Mi Piace

Ho creato una versione ridotta dell’email che dovrebbe mostrare il problema (controllata in irb) ma senza nulla di privato:

issuemail.txt (857 Byte)

1 Mi Piace

L’email di cui stai parlando (e questo esempio) presenta ancora problemi dopo l’aggiornamento oltre la modifica che ho linkato?

No, è stato risolto. Grazie.

2 Mi Piace