Correos rechazados son ilegibles

Cuando reviso /admin/email-logs/rejected de mi sitio autoalojado, encuentro que los correos rechazados tienen su cuerpo así:

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

¿Hay alguna posibilidad de que estos mensajes provengan de un servidor Exchange..? :

2 Me gusta

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.

Recientemente recibí un correo electrónico de rechazo de un servidor Exchange, y por el contrario, no tuvo este problema.

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
1 me gusta

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

1 me gusta

He creado una versión simplificada del correo que debería mostrar el problema (verificado en irb) pero sin nada privado:

issuemail.txt (857 Bytes)

1 me gusta

¿El correo electrónico del que estás hablando (y este ejemplo) todavía presenta problemas después de actualizar más allá del cambio que enlacé?

No, se ha solucionado. Gracias.

2 Me gusta