Estamos executando uma instância onde todas as categorias estão silenciadas e todos os usuários no modo de lista de e-mail por padrão.
Acontece com bastante frequência que os usuários recebem e-mails de threads individuais em suas categorias silenciadas. É muito difícil encontrar qualquer padrão nesse comportamento.
Existe alguma correção (rápida) para isso? Temos mais de 1.000 usuários e várias centenas de categorias → mesmo uma pequena taxa de erro é bastante irritante.
Talvez eles tenham participado desses tópicos, o que supera o silenciamento? Essa é a minha suposição.
Se você não consegue reproduzir o problema, então não é realmente um bug, ou pelo menos não um relatório de bug.
Mas eu pensei que o modo lista de e-mails era para realmente enviar e-mails a todos o tempo todo e fico quase surpreso que silenciar categorias ou usuários funcione. Eu recomendaria que você, em vez disso, não usasse o modo lista de e-mails e, em vez disso, fizesse com que as pessoas que realmente gostam de e-mail acompanhassem as categorias que desejam, em vez de silenciar aquelas que não desejam. Mas parece que seria uma tarefa enorme, então acho que é tarde demais para esta recomendação ser útil.
Como não consigo pesquisar o assunto no painel de administração de E-mails Enviados, é difícil rastrear isso, infelizmente.
O rastreamento automático está definido como nunca por padrão e nenhum dos usuários afetados alterou isso.
Bem.. ¯\(ツ)/¯
A única razão real para usar o modo lista de e-mails é que, neste caso, recebe-se as próprias mensagens por e-mail – este é um pedido muito, muito, muito frequente.
Outra vantagem do silenciamento: ele não sobrecarrega a página de visão geral da categoria quando há centenas de categorias (e sim, tentamos incentivar a redução do número ao migrar do fórum/lista de e-mails anterior)
Certo, então eu brinquei um pouco com o explorador de dados, mas deixe-me primeiro explicar como configuramos os usuários/notificações:
Primeiro, espelhamos a antiga lista de e-mails por algum período para acumular algum conteúdo no discourse.
[NB: fizemos isso em uma instância de desenvolvimento separada e depois copiamos as postagens para a instância de produção]
Em seguida, “inscrevemos” os usuários com base nas antigas listas de e-mails → daí eles podem estar inscritos (observando) em algumas categorias automaticamente com base em suas assinaturas anteriores de listas de e-mail.
Então peguei um usuário que nunca visitou o site: por exemplo, nunca visto, nenhuma postagem lida etc.
Em seguida, usei o plugin “Lista de tópicos que um usuário está observando/acompanhando/silenciando”.
E vejo que no nível de notificação 3 apenas tópicos nas categorias para as quais ele foi automaticamente inscrito - bom.
Quando verifico o nível 1, vejo muitos tópicos - o que provavelmente também está bom, já que apenas categorias são silenciadas, não tópicos, ou seja, eles devem ser regulares = 1. Mas por algum motivo o topic_last_visited_at está sempre presente e corresponde à data de criação do tópico.
Então, há usuários que foram criados como usuários “staged” na instância de produção via e-mail e depois ativados - mas nunca visitaram o site. Para esses usuários, não vejo nenhum tópico no nível de notificação 1!
Portanto, parece que pode haver alguma bagunça criada para usuários inicialmente “staged”.
Pergunta: existe alguma maneira de redefinir os níveis de notificação de tópicos para os usuários?
Talvez antes disso: existe alguma maneira de visualizar os níveis de notificação de tópicos de um usuário?
Não encontrei no painel web de administração. Isso só é acessível no nível do banco de dados?
Infelizmente, o explorador de dados não permite ver os níveis de notificação de tópicos por usuário. Verifiquei que os usuários que recebem esses e-mails espúrios não estão inscritos nas categorias.
Algo assim deve funcionar, a menos que eu tenha entendido mal o que você procura?
-- [params]
-- int :topic_id
SELECT tu.user_id,
tu.notification_level
FROM topic_users tu
WHERE tu.topic_id = :topic_id
ORDER BY tu.notification_level DESC
Então, verifiquei um ID de tópico que nunca visitei e não me encontrei na lista. Mas quando visito esse tópico e executo a consulta novamente, apareço na lista com nível de notificação = 1. Isso é esperado? (observe que o rastreamento automático está desativado!)
Em seguida, para os tópicos que estavam causando e-mails espúrios para muitos usuários, encontrei uma lista enorme de usuários com nível de notificação = 1. Alguns desses são usuários “staged” que, na verdade, nunca fizeram login na web e também não participaram da thread.
Finalmente, descobri que os tópicos com assinaturas em massa eram em sua maioria de antes do momento em que o site entrou no ar e os usuários podiam fazer login. Além disso, o número de assinantes é bastante estável e parece corresponder ao número de usuários que o site tinha naquela época.
Devo observar que em algum momento ativei a configuração allow changing staged user tracking (permitir alteração do rastreamento de usuários “staged”), mas depois a desativei. Também ativei/desativei o mute all categories by default (silenciar todas as categorias por padrão) em algum momento.
Talvez tudo isso tenha causado essa confusão?
No final, provavelmente deveria apenas sugerir aos usuários que cancelem a inscrição dos tópicos indesejados.
O nível de notificação 1 é ‘Normal’, então seria esperado. E você só terá um registro na tabela topic_users se você visitou o tópico, então isso também é esperado.
Parece que você pode ter ativado alguns níveis de notificação de tópico quando ajustou algumas configurações. Você poderia verificar especificamente se alguém está Assistindo a um tópico em uma categoria silenciada e ver se são as pessoas afetadas no seu problema original?
Na verdade, se eles estiverem marcados como Normal no tópico, acho que isso substituiria o silenciamento da categoria também. Você pode ter chegado à resposta. Acho que sua alteração de configuração anterior pode ter definido em massa o nível de notificação de tópico de todos, e alterá-lo novamente afetou apenas os tópicos novos daqui para frente.