Mudança no comportamento sobre e-mail

De repente, após a última atualização, o Discourse envia e-mails com:

“Alguém respondeu a um tópico que você está Monitorando.” precedendo cada e-mail. Todos os meus usuários estão reclamando muito, e nenhum alterou nenhuma configuração de e-mail.

Todos dizem que é muito irritante.

Então, o que aconteceu e como podemos desativar isso e reverter para o comportamento normal e simples? Eu não acho que isso foi bem implementado, e o desenvolvedor nem se deu ao trabalho de verificar, já que “watching” (monitorando) está escrito com um W maiúsculo desnecessário.

Acho que a fonte de aborrecimento para os membros da comunidade do Andrew é %{header_instructions}.

Esse token se expande para um bloco de texto padrão consideravelmente grande (“não responda…”, links, instruções, etc.) e aparece no topo do corpo do e-mail em muitos modelos de notificação. Para usuários experientes, ele domina a mensagem e parece mais uma repreensão do que uma ajuda.

Atualmente, não há uma configuração em todo o site para desativá-lo ou realocá-lo. Para removê-lo, um administrador precisa editar cada modelo de e-mail individualmente em Admin → Email → Templates.

Na versão atual latest-release (estou em latest-release +17), deveria ser possível resolver isso centralmente com um script Rails para modelos que já possuem substituições no banco de dados (DB), por exemplo, removendo %{header_instructions} quando ele aparece no início do corpo. Essa parte é simples e usa o modelo EmailTemplate.

Aplicar a mesma alteração a todos os modelos padrão (incluindo aqueles sem substituições existentes) exigiria a criação de substituições, buscando os corpos dos modelos padrão por meio de APIs de busca internas. Isso é viável, mas depende de detalhes internos do Discourse e precisaria da revisão/validação de um mantenedor antes de ser amplamente recomendado.

Portanto, o problema subjacente não é apenas o conteúdo de %{header_instructions}, mas o fato de ser um texto padrão efetivamente global sem uma opção de alternância em nível de administrador, e removê-lo ou movê-lo exige trabalho manual por modelo ou scripting não suportado.

@Ethsim2 obrigado, isso é realmente ótimo. Mas por que isso mudou de repente? Eu não sou especialista em ler ou mesmo localizar registros de alterações.

@Andro sim - pergunta totalmente justa.

A parte “de repente” é porque %{header_instructions} não é algo que você alterou localmente: é um bloco fornecido pelo núcleo que o Discourse injeta em vários e-mails de notificação. Se o núcleo alterar sua redação ou quando for incluído, todos notarão imediatamente, mesmo que nenhuma configuração de administrador tenha sido tocada.

Não quero exagerar sem uma referência de commit específica, mas a causa mais provável é uma alteração recente no núcleo do texto padrão para o qual %{header_instructions} se expande para notificações de tópico vigiado (por exemplo, adicionando a linha “Alguém respondeu a um tópico que você está Vigiando.”), ou para quando esse bloco é incluído no corpo do e-mail.

Como confirmar de onde está vindo:

  • Em Admin → E-mail → Configurações de E-mail → Modelos, verifique os modelos de notificação que seus usuários recebem (vigiado / acompanhado / respondido / mencionado).
  • Se o corpo começar com %{header_instructions}, essa é a origem do novo texto de prefácio.
  • Removê-lo, ou movê-lo para baixo de %{message} / %{context} (ou até mesmo %{reply_instructions}), reverterá para o comportamento “simples” anterior.

Infelizmente, atualmente não há uma opção global para isso. Cada modelo afetado precisa ser ajustado individualmente, é por isso que isso parece abrupto e difícil de controlar quando o comportamento do núcleo muda.

Se você estiver usando o Discourse hospedado, a solução prática é apenas editar o pequeno punhado de modelos que seus usuários realmente recebem, em vez de todos eles.

1 curtida

Essas prévias foram adicionadas há alguns dias

3 curtidas

Então, apenas remover %{email_preview} dos modelos corrigiria isso?

1 curtida

A palavra Watching é frequentemente capitalizada em referência à função específica do Discourse.

Estou sempre observando (watching) o surgimento de tópicos interessantes. Mas estou Monitorando (Watching) certos tópicos para quaisquer novas respostas.

2 curtidas

E então Rastreamento, etc., conforme indicado no menu suspenso de status de notificação do tópico.

Para ser honesto, eu não teria descoberto isso. Eu entendo, mas é um pouco incomum, de certa forma.

1 curtida

Obrigado, isso faz sentido.

Então, neste caso, a mudança repentina que o Andro está vendo vem de %{email_preview} ter sido adicionado recentemente (PR #36657), o que explica por que apareceu da noite para o dia sem quaisquer alterações administrativas.

Do ponto de vista do administrador, o problema é semelhante de qualquer maneira: é conteúdo injetado pelo núcleo no topo do corpo do e-mail, e atualmente não há uma chave global para desativá-lo ou reposicioná-lo. A única solução alternativa hoje é editar os modelos de e-mail afetados e remover ou mover %{email_preview} (assim como %{header_instructions}).

Para clientes hospedados em particular, é por isso que isso parece abrupto — as configurações padrão mudaram, mas não há um controle global suportado.

As strings de visualização também podem ser substituídas - você pode pesquisar pela string específica ou por .preview e, em seguida, usar Ctrl+F para pesquisar user_notifications para encontrá-las.

Na mensagem de commit:

Para e-mails HTML, este texto de visualização é ocultado com display: none para evitar que apareça no corpo do e-mail. Para a versão em texto simples do e-mail, ele aparecerá no corpo do e-mail.

Para quais usuários esta mensagem está aparecendo? Não deveria.

No meu cliente de e-mail, vejo no código-fonte:

<div> class="email-preview" style="display:none"> <p>Someone sent you a PM.</p> </div>

e está oculto tanto no Thunderbird quanto no Gmail (web).

2 curtidas

Para referência, é assim que o novo texto de visualização está aparecendo no Outlook para iOS para mim - não é apenas um trecho da caixa de entrada; torna-se a primeira linha visível associada à mensagem, que é o que os usuários estão reagindo.

Isso parece consistente com a adição recente de %{email_preview}: mesmo que pretendido como texto de pré-cabeçalho oculto para e-mails HTML, na prática, é altamente visível para os usuários (pelo menos em alguns clientes/caminhos de entrega), o que explica as reclamações repentinas.

Isto é provavelmente intencional, já que está trazendo a razão do e-mail para a prévia da mensagem. Eu arriscaria dizer que sem isso, a prévia da mensagem geralmente não é útil?

Isso faz sentido, e concordo que ter algum texto de prévia significativo é geralmente útil.

O problema ao qual os usuários parecem estar reagindo (pelo menos no Outlook para iOS e clientes semelhantes) é que esse texto de prévia não está apenas influenciando o trecho da caixa de entrada, mas é visualmente lido como parte do corpo da mensagem em si, aparecendo antes do conteúdo real. Na prática, isso parece repetitivo e poluído em vez de útil.

Há também um pouco de tensão na redação atual: a formulação anônima (“Alguém respondeu…”) é útil do ponto de vista de privacidade e compartilhamento de capturas de tela, mas no uso diário é menos informativa do que as prévias com conhecimento do remetente, onde os usuários principalmente querem saber quem respondeu e se isso requer atenção.

Portanto, é menos sobre se o texto de prévia deve existir ou não, e mais sobre se a implementação atual, bastante rígida, degrada a experiência de leitura em alguns clientes ou caminhos de entrega. Uma abordagem sensível ao cliente, ou uma maneira suportada de reposicioná-lo ou desativá-lo, provavelmente resolveria a maioria das reclamações sem perder o benefício de prévias aprimoradas.

1 curtida