E-mail de ativação pulado porque "usuário é anônimo"

Enviei convites por e-mail para onze colegas diferentes que concordaram em me ajudar a testar minha instância do Discourse auto-hospedada. A maioria conseguiu criar uma conta sem problemas, exceto um.

Quando enviei o e-mail de convite inicial para ele, houve um soft bounce (estou usando o MailJet para e-mails de saída e o domínio do endereço dele é mac.com). Após oito dias, reenviei o convite e ocorreu outro soft bounce. Como já havia conseguido enviar e-mails para ele com sucesso a partir da minha conta pessoal durante esse período, gerei um link de convite e o enviei dessa forma.

Quando ele clicou no link, conseguiu criar uma conta e uma senha, mas não recebeu o e-mail de ativação. Ao verificar meu painel de administração, vi que o e-mail de ativação apareceu na aba “Ignorados” e o “Motivo da Ignorância” foi “Usuário anônimo”.

Não tenho certeza do que significa “anônimo” neste contexto. Acreditei que, se os usuários fossem convidados por meio de um link, normalmente receberiam um e-mail de ativação para verificar o endereço de e-mail. Tenho a opção “nome completo obrigatório” marcada, e ele preencheu esse campo em seu perfil.

Você tem o modo anônimo ativado? Ele está desativado por padrão no Discourse.

Aqui estão as configurações que incluem “anônimo” que alterei do padrão:

“login obrigatório”: marcado
“habilitar CTA de cadastro”: desmarcado
“permitir postagem anônima”: marcado

Lembre-se de que todas as contas anônimas são temporárias e criadas sob demanda quando um usuário logado seleciona a opção “entrar no modo anônimo”.

OK, isso é interessante. Eu não achei que ele teria conseguido entrar no modo anônimo, já que ele nunca foi ativado e não conseguiu fazer login.

Consultei o banco de dados com o Data Explorer para ver quais usuários anônimos estão associados a quais usuários originais. A conta dele está aparecendo como um usuário anônimo vinculado à minha conta de administrador.

Não está claro para mim por que ele está na tabela anonymous_users.

Deve haver algum problema com seu código SSO. Você está usando SSO?

Além disso, diria que sua instalação está quebrada de alguma forma.

Não estou usando SSO, estou apenas usando a autenticação de usuário nativa.

Se minha instalação estiver quebrada, isso seria corrigido por uma reconstrução?

Este também é o primeiro usuário que convidei desde que atualizei para a versão 2.4.0.beta6, assim como o único usuário que convidei usando um link em vez de um e-mail.

Você os convidou (gerando o link de convite) enquanto estava no modo anônimo? :thinking:

Eu estava na minha conta de administrador quando gerei o link (não no modo anônimo).

ATUALIZAÇÃO: Na tentativa de reproduzir o problema com um endereço de e-mail diferente, enviei um link de convite para mim mesmo em meu endereço secundário (um endereço .edu hospedado pelo Gmail) usando meu e-mail pessoal do iCloud.

Depois que cliquei no link de convite e me registrei, o Discourse enviou um e-mail de ativação para o endereço .edu. Entrei na conta de administrador e verifiquei que a nova conta de usuário não estava em anonymous_users. Saí da conta de administrador e, em seguida, consegui ativar a conta através do link no e-mail de ativação.

Após excluir o novo usuário, tentei o processo novamente usando o e-mail de convite gerado automaticamente, e tudo funcionou conforme o esperado.

Como não consegui reproduzir o problema com um e-mail diferente que eu controlo, será que isso poderia ser algum problema relacionado à conta de e-mail dessa pessoa e/ou ao provedor de e-mail? Ambos os meus e-mails de convite anteriores tiveram entrega parcial (soft bounce) em momentos diferentes, quando consegui enviar e-mails para ele através da minha conta pessoal. (Não acho que seja o provedor de e-mail, já que ambos estamos no Mac - Apple e consigo enviar e-mails pelo Discourse para minha conta pessoal sem problemas).

Além disso, na tentativa de solucionar o problema de entregabilidade, acabei de enviar a essa pessoa um e-mail de Teste de Entregabilidade através de admin/email, e o MailJet mostra que foi entregue. A única coisa que mudou entre a última vez que tentei enviar e-mail para ele pelo sistema e agora é que adicionei um registro DMARC no DNS (já tinha configurado SPF e DKIM, mas não tinha DMARC).