Semelhante a Mirrored mailing list is rejecting registered forum users
Não parece ser. O tópico referenciado parece ser um problema de permissão causado por configuração incorreta.
Minha culpa, peço desculpas pela perturbação.
Eu propus uma correção para o problema que encontrei, mas por tudo que encontrei até agora, o componente que estava realizando a alteração afeta apenas o registro salvo e não afeta o e-mail recebido durante o processamento.
Estou razoavelmente confiante de que a fonte do problema deve ser outra coisa, mas ainda não sei o que pode ser.
Como essa alteração foi mesclada, atualizei nossa instância do Discourse hoje e ficarei de olho nos logs de e-mails rejeitados nos próximos dias.
Desde a atualização, três novos erros InvalidPost foram registrados, mas os detalhes da rejeição são diferentes: todos os três erros mostram o corpo da mensagem correto (onde antes era mostrada a assinatura da lista de e-mails) e o motivo da rejeição agora é Access Denied.
Pelo menos isso é uma melhoria.
A razão do erro permanece com o usuário?
Você tem certeza de que o erro está incorreto? O usuário tem permissão para postar na categoria? O usuário está ativo?
Por um lado, o motivo não parece se sustentar: a conta está ativa, não suspensa nem silenciada. No entanto, notei que a conta não está “preparada” (staged), o que é o caso da maioria das contas cujas postagens da lista de e-mails acabam no Discourse. Todas as postagens de usuários não preparados são de membros da equipe de moderação.
Nossa categoria de espelhamento de lista de e-mails foi configurada inicialmente usando este guia: Mirroring a read-only mailing list in Discourse
No entanto, acabei de revisar as permissões configuradas na categoria e parece que nosso grupo de moderadores foi adicionado, e a \everyone\\ (todos) recebeu permissões de \reply\\ (responder).
Removi essas permissões extras e deixei apenas a \everyone\\ (todos) com a permissão de \see\\ (ver). Talvez essas permissões “extras” estejam interferindo na forma como o Discourse lida com essas categorias especiais de “espelhamento de lista de e-mails”?
O fato de o usuário não estar em “staged” (preparado/em espera) pode ser o problema. Usuários em “staged” não são verificados quanto à permissão para postar na categoria, mas usuários registrados são. Portanto, se o usuário não estiver em um grupo que tenha permissão para responder a tópicos na categoria, a resposta dele será rejeitada por falta de permissão. O mesmo se aplica a novos tópicos e à permissão de ‘criar’.
Há um tópico sobre este problema aqui: Category not accepting "anonymous email" from known users
No entanto, acabei de revisar as permissões configuradas na categoria e parece que nosso grupo de moderadores foi adicionado, e
everyonerecebeu permissões dereply.Removi essas permissões extras e deixei apenas
everyonecom a permissão desee. Talvez essas permissões “extras” estejam interferindo na forma como o Discourse lida com essas categorias especiais de “espelho de lista de e-mails”?
Na verdade, esqueça isso, eu devo ter olhado para outra categoria, porque as permissões para a categoria de espelho de lista de e-mails estão como esperado: apenas everyone tem a permissão de see. Dito isto, minha observação de que postagens de usuários que não são moderadores nem estão em estágio parecem ser consistentemente rejeitadas.
[quote=“Moin, post:30, topic:377793”]O fato de o usuário não estar em estágio pode ser o problema. Usuários em estágio não são verificados quanto à permissão para postar na categoria, mas usuários registrados são. Portanto, se o usuário não estiver em um grupo que tenha permissão para responder a tópicos na categoria, a resposta dele será rejeitada por falta de permissão. O mesmo se aplica a novos tópicos e à permissão de ‘criação’.
[/quote]
Esta explicação definitivamente faz sentido com base no que estou vendo, mas se for esse o caso, este é definitivamente um comportamento inesperado e confuso: remetentes que postam na lista de e-mails espelhada, mas que por acaso já têm uma conta no Discourse com o endereço de e-mail associado, deveriam definitivamente ter permissão para postar em categorias onde a configuração “Esta categoria espelha uma lista de e-mails” está ativada.
O que seria incrível é se o Discourse pudesse persuadir/pagar alguém da equipe do Mailman (ou alguém semelhante) para melhorar a forma como o Discourse lida com e-mails.
Temos testes que garantem que o Discourse pode receber e-mail para categorias somente leitura que espelham uma lista de discussão:
Para suportar isso, as postagens enviadas para espelhos de lista de discussão ignoram algumas verificações:
def create_post(options = {})
…
if sent_to_mailinglist_mirror?
options[:skip_validations] = true
options[:skip_guardian] = true
else
options[:email_spam] = is_spam?
options[:first_post_checks] = true if is_spam?
options[:email_auth_res_action] = auth_res_action
end
def sent_to_mailinglist_mirror?
@sent_to_mailinglist_mirror ||=
begin
destinations.each do |destination|
return true if destination.is_a?(Category) && destination.mailinglist_mirror?
end
false
end
end
A meu ver, algo relacionado à sua configuração pode estar criando uma condição em que o fato de ser um espelho de lista de discussão não é detectado? Observe que, para ignorar essas verificações, o e-mail deve ser enviado para o endereço de e-mail da categoria e não para o reply_by_email_address do site.
Ah, isso é interessante, e parece ser contrário à orientação postada aqui para configurar um espelho de lista de e-mails:
Assine a lista de e-mails usando seu endereço de e-mail do Discourse (por exemplo,
discourse@example.com).
Verifiquei o endereço de e-mail inscrito em nossas listas de e-mails em nome do Discourse, e é de fato discourse@forum.torproject.org.
Eu deveria estar usando um endereço de e-mail diferente aqui? Se sim, qual?
Não, está tudo bem.
A parte que você pode estar perdendo é esta:
(lembre-se que o Discourse usa apenas os cabeçalhos da mensagem (Para/CC) e não conhece o endereço envelope-to)
Para a categoria tor-relays, eu tenho o Endereço de e-mail de entrada personalizado definido como tor-relays@lists.torproject.org, que acredito corresponder ao cabeçalho Para: dos e-mails enviados pelo Mailman.