Meu site Discourse é o cliente SSO do meu site WordPress. Usuários do Discourse foram criados para os membros do WordPress à medida que eles faziam login no WordPress. Quase nenhum usuário visitou realmente o fórum. Tenho configurações de e-mails de resumo para serem enviados diariamente e apliquei retroativamente essa configuração a todos os usuários existentes do Discourse. O problema que estou enfrentando é que parece que esses resumos estão sendo enviados apenas para contas do Discourse que realmente visitaram o fórum em algum momento. Quero que os usuários comecem a receber os e-mails de resumo assim que a conta existir no Discourse. O comportamento que estou observando com os e-mails é o padrão e, se for, como posso contorná-lo?
Você sabe se os usuários precisam responder a um e-mail de ativação do Discourse antes do primeiro login do WordPress para o Discourse? Esse será o caso se você não estiver usando o método de registro padrão do WordPress no seu site WordPress. Isso significa que os usuários não serão marcados como ativos no Discourse até que respondam ao e-mail. O e-mail de resumo é enviado apenas para usuários que foram marcados como ativos no Discourse.
Há bastante personalização em andamento com nosso registro no WordPress, mas todos os usuários que verifiquei no Discourse estão configurados como ativos. No entanto, os campos ‘último e-mail enviado’ e ‘última visita’ estão vazios.
Será que pode haver um bug? Todas as minhas configurações parecem estar corretas. A única coisa que consigo pensar é que defini “suprimir e-mail de resumo após X dias” para 3650 e, como meus usuários nunca foram vistos, o e-mail deles está sendo suprimido. Também suprimi e-mails para todos os usuários por um tempo, mas isso atualmente não está configurado.
Acho que é isso. O e-mail de resumo mostra o resumo das coisas desde sua última visita. Se você nunca visitou, não há “desde sua última visita”.
Parece que essa é a causa do problema. O código está verificando o seguinte:
.where("COALESCE(last_seen_at, '2010-01-01') >= CURRENT_TIMESTAMP - ('1 DAY'::INTERVAL * #{SiteSetting.suppress_digest_email_after_days})")
Como last_seen_at retornará nil para o novo usuário, o código verificará se ‘2010-01-01’ é maior que 3650 dias atrás antes de enviar o e-mail. Aumentar o valor dessa configuração deve resolver o problema para você. O risco de definir esse valor para um número grande de dias é que você pode estar enviando o e-mail de resumo para usuários que não têm interesse no site.
Isso ajudou um pouco, mas não resolveu o problema. Para testar, configurei a frequência do e-mail de resumo para 30 minutos e o número máximo de notificações por dia para 1. Também defini a configuração “última visita” para 365000. Basicamente, usuários adicionados ao Discourse nos últimos 17 dias receberam e-mails, assim como alguns usuários que foram vistos recentemente, mas que foram criados anteriormente. Posso confirmar que todos os usuários estão ativados — ou pelo menos pude verificar isso em uma seleção aleatória de usuários que não receberam e-mails. Não sei como resolver isso. Há algo que eu possa redefinir manualmente?
Fiz uma investigação mais aprofundada e parece que as preferências de e-mail de resumo na maioria das contas não estão sendo definidas quando altero a frequência. Assim, se eu mudar a frequência do resumo de 30 minutos para 1 hora e confirmar para aplicar a alteração a todas as contas, a configuração não parece ser aplicada. Confirmei isso ao assumir a identidade de contas que não recebem os e-mails. A configuração de preferência delas terá os resumos desativados.