Email para subcategoria privada em Discourse::InvalidAccess

Continuando a discussão de Email-in Discourse::InvalidAccess:

O Discourse::InvalidAccess ocorreu novamente. Desta vez, o comprimento do Assunto não é a causa. Suspeito que tenha a ver com a categoria ser uma subcategoria restrita. Mas a categoria está configurada para receber e-mails de endereços sem conta, então eu esperaria que o e-mail fosse processado e criasse um novo tópico.

O caso de uso é um CFP (Call for Papers): as pessoas devem poder enviar mensagens, mas apenas os organizadores devem poder ler as mensagens e discuti-las. Acho que isso é diferente do caso descrito em Email in to a private category


Documentação relevante: Configuring incoming email to create new topics or group messages - Site Management - Discourse Meta

Eu reconstruí após um git pull (noop), e agora parece estar funcionando com o segundo domínio adicionado aos relay_domains do Postfix. Antes desta série de testes, e com a alteração, eu não tinha mais erros, mas os e-mails não apareciam, nem na categoria nem nos logs de erro.

Em containers/mail-receiver.yml temos:

POSTCONF_relay_domains: forum.example.net, example.net

(Claro, example.net não é o que está realmente no arquivo de configuração. O que está lá é o nome do host para o fórum e o nome do domínio pai, ambos configurados no DNS)

Notei que @mpalmer mencionou anos atrás que adicionar um segundo domínio poderia ser feito, mas

Então eu esperava que a pequena configuração de relay_domains não fosse suficiente, mas parece funcionar, dado que você faz git pull antes de reconstruir. Deve haver alguma peculiaridade na forma como o contêiner mail-receiver é construído que falha ao atualizar pups…

De alguma forma a falha retornou. Isso é um pouco ridículo, porque os testes anteriores estavam OK. Agora, após outra reconstrução, o e-mail de entrada está sendo recusado novamente. Recorri a repetir a dança git pull e depois rebuild, mas desta vez não pareceu funcionar.

Suspeito que a situação da sub-categoria possa estar influenciando, a menos que algo tenha mudado na forma como o e-mail de entrada é tratado em relação às permissões de categoria.

A situação agora é que as pessoas enviam e-mail e recebem e-mail de rejeição, então tenho que copiar e colar os e-mails rejeitados e atribuir os tópicos ao remetente original. A ‘experiência do usuário’ é, portanto, terrível, e a sobrecarga é bastante desagradável.

Eu realmente não posso aceitar que o e-mail de entrada seja uma categoria pública, este é o objetivo de fazer um CFP. Mas o Discourse agora parece incapaz de servir a esse propósito. :cry:

Esses e-mails rejeitados são de usuários que já possuem uma conta?

Alguns sim.

E-mails de pessoas sem conta são rejeitados (mas a categoria está definida como receber e-mail de endereços sem conta).

E-mails de pessoas nos grupos autorizados parecem passar sem problemas.

E-mails de pessoas com conta, mas sem acesso à categoria, são rejeitados.

Parece-me que as permissões são verificadas, apesar da configuração de aceitação padrão.

Estou atualmente revisando o código do contêiner mail-receiver para ver se encontro algo lá.

Para aqueles que têm uma conta, mas não têm acesso à categoria, espera-se que sejam rejeitados. A opção Aceitar e-mails de usuários anônimos sem conta aplica-se apenas a usuários em estágio, e aqueles com uma conta existente têm as permissões de categoria aplicadas.

É estranho que pessoas sem conta estejam sendo rejeitadas. Isso pode ser devido às alterações que você fez no receptor de e-mail?

Aparentemente, a rejeição é tratada pelo endpoint em /admin/email/smtp_should_reject.json.

Eu fiz a alteração porque os e-mails estavam retornando. Primeiro, adicionei vários e-mails ao endereço de e-mail de entrada (separando-os com |) e isso pareceu funcionar.

Ok, isso faz sentido. Mas é um pouco confuso. Se “qualquer um” pode enviar e-mail, mas usuários existentes não podem, isso meio que anula o propósito.

Vou verificar nos e-mails recusados se eles são em estágio ou não. Muito obrigado por me ajudar a depurar, @JammyDodger.

1 curtida

Acho que você está certo @JammyDodger, usuários novos passam, usuários existentes com acesso normal à categoria passam, mas contas existentes sem acesso não podem enviar e-mail para a categoria.

Acho que uma solução alternativa seria criar um grupo CFP sem nenhuma notificação para a categoria que compreende todos os usuários existentes. Mas parece muito improvisado e pode ter efeitos colaterais de cancelamento de notificações existentes… Não sei o que fazer.

Eu acho que as pessoas usam o envio de e-mails para um grupo como alternativa, isso poderia ser útil?

1 curtida

Isso poderia… Provavelmente é isso que deveria ser feito.

Você sabe se um grupo com uma categoria silenciada terá precedência sobre outro grupo com a mesma categoria definida como assistindo?

Resumindo:\n\n- Dada uma categoria privada com permissão de recebimento de e-mail para endereços de e-mail desconhecidos (ou seja, que não pertencem a nenhuma conta existente, também conhecidos como usuário em estágio)\n\n-\u003e se um e-mail chegar de um endereço desconhecido: ele é entregue à categoria privada\n-\u003e se um e-mail chegar de um endereço conhecido: ele é entregue se e somente se o usuário for membro de um grupo autorizado a acessar a categoria.\n\nPortanto, se você quiser usar o recebimento de e-mail para um CFP, configure o recebimento de e-mail de um grupo privado e use esse endereço. As mensagens podem ser "tornadas públicas" e transformadas em um tópico em uma categoria (privada ou não).

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.