Faltando espaços no texto do email de resumo de atividade

Acabei de me enviar alguns resumos de prévia, já que normalmente não os recebo.

Estou vendo alguns caracteres de espaço ausentes aleatórios — mas consistentes — em títulos e texto dentro do e-mail. Esses espaços não estão faltando no conteúdo do fórum, mas os mesmos são consistentemente omitidos em vários resumos de prévia gerados, conforme visualizado em vários clientes de e-mail.

Tentei excluir e readicionar os espaços originais sem efeito.

Trechos:

Revisei os resumos que recebo de alguns outros fóruns do Discourse e não vejo isso em nenhum outro lugar.

Mais alguém viu isso, ou tem alguma ideia do que está acontecendo?

Será que isso pode ser um problema de fonte/exibição? Você verificou o conteúdo bruto subjacente?

Hm. Não tenho certeza de como diagnosticar um problema de fonte/exibição. Os e-mails são renderizados da mesma forma em vários clientes de e-mail e navegadores no Windows e Linux.

Anexei .json aos URLs das postagens do fórum, e não há nada de errado com o conteúdo “topic_slug” ou “cooked”…

Há algo mais que eu possa verificar no conteúdo bruto?

1 curtida

Você precisará verificar o e-mail bruto em vez da postagem.

1 curtida

Ok - eu olhei o e-mail bruto, e onde a versão HTML está faltando espaços, a versão de texto tem os espaços corretos. No entanto, a versão de texto está faltando outros caracteres de espaço. Não há lógica nisso.

Talvez possa ser uma falha de codificação de caracteres no processo de copiar/colar os tópicos afetados de uma plataforma legada..? EDIT: Não. Está continuando com posts atuais, e também com outros e-mails — não apenas o resumo.

Resumos mais recentes do Discourse apresentando posts atuais não estão tendo o mesmo problema, então não vou me preocupar muito a menos que eu veja isso continuar. EDIT: Está continuando.

(Nota lateral: só para ficar de olho nessas coisas, agora gostaria de poder forçar um resumo completo enviado para minha conta de administrador diariamente — independentemente de eu estar constantemente logado.)

Você poderia encaminhar um desses e-mails para mim como anexo?

EDIT: feito

OK, aqui está o que vejo no e-mail de texto puro:

[Mis/Disinformation starts to overwhelm civilization][2]

O lado sombrio da IA generativa é que ela permite a produção de desinformação (devido à confabulação) e desinformação (ou seja, produção deliberada de notícias falsas para atingir um objetivo) em escala industrial. A renderização de páginas da web no estilo de fontes autoritativas é direta, e o progresso em deep fakes tornará os complementos de histórias em vídeo mais fáceis. Além das nuvens de informações falsas de Vinge para ocultar informações (Rainbows End), que não acredito que representassem uma solução, algum autor de FC pensou sobre isso e como isso poderia ser abordado?

nota:

  • to overwhelm :white_check_mark:
  • a paperback :white_check_mark:
  • Renderingof :x:
  • Asidefrom :x:

e na versão HTML:


<a href="https://forum.tasat.org/t/mis-disinformation-starts-to-overwhelm-civilization/66" style="text-decoration: none; font-weight: bold; color: #006699;; font-weight:400;line-height:1.3;margin:0;padding:0;text-decoration:none">
<strong >Mis/Disinformation starts tooverwhelm civilization</strong>
…
Renderização de páginas da web no estilo de fontes autoritativas é direta, e o progresso em deep fakes tornará os complementos de histórias em vídeo mais fáceis. Além de

nota:

  • tooverwhelm :x:
  • apaperback :x:
  • Rendering of :white_check_mark:
  • Aside from :white_check_mark:

Na forma mais bruta (ou seja, codificada), esses erros ainda estão lá:

[Mis/Disinformation starts to overwhelm civilization][2]

O lado sombrio da IA generativa é que ela permite a produção de desinformação (=
devido à confabulação) e desinformação (ou seja, produção deliberada de notíci=
as falsas para atingir um objetivo) em escala industrial. A renderização de págin=
as da web no estilo de fontes autoritativas é direta, e o progresso em deep f=
akes tornará os complementos de histórias em vídeo mais fáceis. Além de Vinge=
E2=80=99s nuvens de informações falsas para ocultar informações (Rainbows End), qu=
e não acredito que representassem uma solução, algum autor de FC pensou sobr=
e isso e como isso poderia ser abordado?
Ken

<a href=3D"https://foru=
m.tasat.org/t/mis-disinformation-starts-to-overwhelm-civilization/66" style=
=3D"text-decoration: none; font-weight: bold; color: #006699;; font-weight:=
400;line-height:1.3;margin:0;padding:0;text-decoration:none"&gt;
=

<strong >Mis/Disinformation starts tooverwhelm civi=
lization</strong>

estes não estão no bruto/cozido:

000000d0: 5265 6e64 6572 696e 6720 6f66 2077 6562  Renderização de web
000000e0: 2070 6167 6573 2069 6e20 7468 6520 7374   páginas em o st
000000f0: 796c 6520 6f66 2061 7574 686f 7269 7461  ilo de autorita
00000100: 7469 7665 2073 6f75 7263 6573 2069 7320  tivas fontes é
00000110: 7374 7261 6967 6866 6f72 7761 7264 2c20  direta,
00000120: 616e 6420 7072 6f67 7265 7373 2069 6e20  e progresso em
00000130: 6465 6570 2066 616b 6573 2077 696c 6c20  deep fakes vai
00000140: 6d61 6b65 2076 6964 656f 2073 746f 7279  fazer história de vídeo
00000150: 2063 6f6d 706c 656d 656e 7473 2065 6173   complementos fácil
00000160: 6965 722e 2020 4173 6964 6520 6672 6f6d  mente.  Além de

Não que eu não tenha acreditado em você :smiley:

Então… os espaços estão sendo ocasionalmente removidos do corpo do e-mail, seja da parte de texto ou da parte HTML. E não nos mesmos lugares!

Eu postulo que esses erros poderiam ter sido introduzidos em um de quatro lugares:

  • no Discourse, gerando o e-mail
  • transmitindo o e-mail para um servidor de envio de e-mail
  • transmitindo o e-mail para um servidor intermediário/final
  • entregando na caixa de correio do usuário

Provavelmente é mais fácil começar pelo começo.

Você pode fazer o Discourse enviar e-mail para um MTA local onde você possa inspecioná-lo na fila antes que o MTA o envie para o seu servidor de entrega de e-mail “real”?

Obrigado pela análise, Michael!

Não sou um administrador de e-mail avançado - estou executando a instalação manual recomendada típica, com e-mails de saída reais via MailerSend.net, e configurei cuidadosamente DKIM/DMARC etc. para um estado funcional. Pelo que estou lendo, incorporar um MTA local como sendmail ou Postfix é um movimento avançado que é desencorajado na maioria dos casos… Estou um pouco apreensivo em mexer e possivelmente interromper um pipeline funcional. :grimacing:

Existe uma implementação de MTA facilmente reversível, do tipo de solução de problemas, que eu poderia considerar?

Conforme observado nas edições acima, este problema continua com o conteúdo atual postado pelo usuário, não apenas com o conteúdo copiado e colado pelo administrador — e agora é observado com os e-mails de resumo, user_replied e user_posted.

*O suporte do MailerSend confirmou que os caracteres de espaço estão faltando quando recebem a solicitação do Discourse — então, parece que o erro está na geração do e-mail pelo Discourse…?

Para informação, os caracteres de espaço não estão faltando ao visualizar um resumo gerado — apenas quando são recebidos como e-mails.


Ao mesmo tempo, estou tendo este problema com e-mails de resumo, relatado por outros a partir de fevereiro:

Essas postagens repetidas estão presentes nas visualizações de resumo geradas.

EDIT 2024-04-26: o problema de resumo repetido foi identificado. Pendente de correção, mitiguei o problema por meio de alterações nas configurações, mas não parece estar relacionado a este tópico. Os e-mails de saída ainda têm caracteres de espaço faltando.


Fiz uma atualização e reconstrução pela linha de comando para ver se isso resolveria algum problema, mas não teve efeito.

Se essas coisas não estão acontecendo com todos que estão atualizados no branch tests-passed, o que mais eu poderia verificar na minha configuração?

Se você puder desabilitar temporariamente o TLS entre seu servidor e o mailersend, isso permitirá que você inspecione o tráfego real na rede e mostrará se o Discourse está enviando os espaços ou não, resolvendo essa questão de uma vez por todas.

Se você não puder, pode tentar o MITM no tráfego, mas isso é mais complicado.

Se nenhuma das opções acima funcionar, neste caso eu configuraria um postfix local, mas não o configuraria para entrega direta, e sim para que ele envie seu e-mail para sua conta mailersend da mesma forma que o Discourse faz.

Dessa forma, você pode ter o Discourse enviando por qualquer método e pode inspecionar o e-mail na fila do postfix antes que ele saia.

Obrigado Michael – sou novo em "inspecionar na rede", mas eis o que encontrei.

O MailerSend requer TLS e porta 587. Então:

  • Criei um app.yml alternativo para enviar para uma conta gratuita do mailtrap.io na porta 2525
  • Defini DISCOURSE_SMTP_ENABLE_START_TLS = false
  • Apliquei a alteração com:
cd /var/discourse
./launcher destroy app
./launcher start app
  • Configurei o Wireshark para monitorar o tráfego remoto via tcpdump

Os pacotes de conteúdo de e-mail no Wireshark e os e-mails descriptografados recebidos no Mailtrap não têm, até agora, nenhum caractere de espaço faltando. Testes específicos executados consecutivamente com cada configuração têm espaços faltando com minha configuração original e não com a versão do mailtrap. Isso poderia indicar que o problema é introduzido com a criptografia TLS?

EDIT: Ocorreu-me que não utilizei totalmente a configuração de teste do Mailtrap. Desde então, executei vários resumos de pré-visualização criptografados para o Mailtrap — na porta 587 com TLS ativado — e não vi nenhum caractere de espaço perdido. Agora estou pensando que, apesar do MailerSend me dizer que os problemas estavam presentes nas solicitações recebidas, pode estar acontecendo no lado deles, afinal? Não tenho certeza do que pedir para eles procurarem, mas planejo discutir essas descobertas com eles.

2 curtidas

(Só por via das dúvidas, caso ajude: dei uma olhada rápida na minha configuração e não vi nenhum problema. Então, eu me perguntaria se você tem algum tema ou plugin que afeta sua configuração. O que eu fiz foi visitar mail-tester.com para obter um destino temporário, depois usei Admin->Emails->Resumo de pré-visualização para enviar um resumo para o destino temporário e, em seguida, cliquei no mail-tester para ver as versões HTML e de texto simples. Pode valer a pena tentar a mesma tática para ver se algo é diferente para você.)

Obrigado, Ed – para chegar ao mail-tester, meus e-mails teriam que passar pelo meu relay MailerSend, que é o que eu estava tentando remover da cadeia. Mas seu comentário me levou a retornar ao Mailtrap e executar testes com criptografia TLS, e editei minha postagem anterior.

1 curtida

Estou achando isso provável também.

Para um teste sólido, eu pegaria um dos e-mails de texto simples que você capturou e o enviaria manualmente através da sua conta MailerSend usando openssl s_client.