E-mails rejeitados estão ilegíveis

Quando verifico o /admin/email-logs/rejected do meu site auto-hospedado, encontro que os e-mails rejeitados têm o corpo assim:

O corpo correto do e-mail começa com 谢谢 em UTF-8 (o corpo completo é muito mais longo), e o texto danificado é m6Mtyx7x7j+rjuVupyY= em base64.

Os e-mails no banco de dados já estão neste estado danificado. Comparando esse com o do servidor de e-mail, descubro que o e-mail foi reescrito, e suspeito que o módulo de limpeza de e-mail embaralhou o e-mail. (Mas eu não tenho conhecimento suficiente em Ruby para entender seu recurso exclusivo de codificação de strings.)

Há alguma chance de essas mensagens virem de um servidor Exchange..?

2 curtidas

Não. Eles vêm da Tencent e da Netease. O e-mail original (eu o mantive no servidor de e-mail para investigar este problema) não apresenta problemas nem com o mutt nem com a biblioteca Mail do Ruby.

Recebi recentemente um e-mail de rejeição de um servidor Exchange, e, ao contrário, ele não apresentava esse problema.

Entendi. A part de um Mail tem a informação correta de charset, mas de alguma forma seu body não a obtém e trata os 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 curtida

[quote=“lilydjwg, post:1, topic:392868”]Os e-mails no banco de dados já estão neste estado danificado.
[/quote]

Eu corrigi este problema recentemente com:

[quote=“lilydjwg, post:5, topic:392868”]A part de um Mail tem a informação de charset correta, mas de alguma forma seu body não a obtém e trata os bytes como ASCII-8BIT.
[/quote]

Este e-mail (assumindo que seja um que não foi corrompido pelo Discourse) você pode me passar para que possamos investigar mais a fundo e possivelmente usá-lo como um caso de teste?

1 curtida

Criei uma versão simplificada do e-mail que deve demonstrar o problema (verificado em irb), mas sem nada privado:

issuemail.txt (857 Bytes)

1 curtida

O e-mail sobre o qual você está falando (e este exemplo) ainda apresenta problemas após a atualização além da alteração que eu linkei?

Não, foi corrigido. Obrigado.

2 curtidas