Erro "Discourse::NotFound" ao clicar no campo "Tipo de Email" em admin/email/bounced

Acho que clicar em um campo “Tipo de E-mail”, como user_watching_first_post, deve exibir os detalhes da mensagem de bounce recebida do destinatário pretendido.

No entanto, no meu site auto-hospedado, recebo a mensagem de erro mencionada acima. Há algo que eu possa fazer para corrigir isso?

Obrigado.

2 curtidas

Isso está correto. Acabei de verificar isso no meu site Discourse hospedado e está funcionando sem problemas. Se o seu site estiver na versão mais recente do Discourse, estou me perguntando se o problema está relacionado à forma como seu servidor de e-mail lida com o encaminhamento da mensagem de bounce.

2 curtidas

Obrigado. Para e-mails de saída, estou usando o Mailgun. Acredito que usei as configurações recomendadas pelo Discourse.

Para e-mails de entrada, estou usando este: Configure direct-delivery incoming email for self-hosted sites with Mail-Receiver. Mas nunca atualizei desde a instalação — será que esse é o problema? Como para o Discourse é ./launcher rebuild app, será que para o mail-receiver é ./launcher rebuild mail-receiver?

1 curtida

Sim, é assim que você atualiza. Faz um tempo desde a última atualização, eu acho, mas um bom primeiro passo seria atualizá-la e o Discourse.

2 curtidas

Atualizei ambos e ainda recebo o mesmo erro, inclusive (acho eu) para e-mails recebidos desde a atualização. Alguma outra sugestão?

3 curtidas

O mesmo problema aqui. Auto-hospedado, atualizado. Os rebotes estão sendo tratados da maneira recomendada. Os links de antes de mudarmos para o tratamento adequado de rebotes funcionam bem.

4 curtidas

Sim, provavelmente o Discourse não está recebendo isso do Mailgun. Não sei como os webhooks funcionam, mas suspeito que eles apenas informam ao Discourse que houve uma falha temporária ou permanente, sem enviar a mensagem de bounce.

2 curtidas

Existe alguma maneira de fazer esse recurso do Discourse funcionar com o Mailgun?

Deveria ser possível mostrar, pelo menos, o código e a mensagem de erro:

Tanto o código de erro SMTP quanto a mensagem de erro SMTP são preservados
“code”: 550,
“address”: “'baz@example.com”,
“error”: “Message was not accepted – invalid mailbox. Local mailbox 'baz@example.com is unavailable: user not found”

https://documentation.mailgun.com/en/latest/api-bounces.html#examples

Caso contrário, pelo menos precisamos de uma mensagem de erro adequada para explicar por que o link não funciona :slight_smile:

2 curtidas

Algum trabalho foi feito nisso. Ficaria muito grato se tivesse :slight_smile:

Eu uso Digital Ocean e Mailgun (as principais recomendações), então imagino que não sou o único com o problema.

3 curtidas

Após meus próprios testes, parece que em muitos casos, os bounces não são recebidos pelo destinatário do e-mail. (Encontrei apenas uma tentativa de conexão para um, que foi prontamente perdida). Não estou vendo o cabeçalho Return-Path ser definido (ele deveria ser?) o que me faz pensar que eles nem estão sendo enviados de volta na maioria das vezes.

2 curtidas

Ainda há um problema aqui também. Apesar da minha declaração anterior, agora parece que nenhum desses links funciona, voltando ao início do site. Inicialmente, isso afetou apenas os bounces de antes de começarmos a lidar com os bounces corretamente (Configure VERP to handle bouncing e-mails).

3 curtidas

Acabei de notar várias mensagens de aviso no log de erros, semelhantes a estas:

Email não pode ser processado: Email::Receiver::AutoGeneratedEmailError

Recebido: de ...
	para <bounce+f7e463.5f70e9-...@forum.example.com>; ...
Assunto: Sua mensagem não pôde ser entregue

Talvez seja por isso que o Discourse não tem detalhes sobre os e-mails devolvidos.

Não estou vendo esses erros nos logs, mas o problema persiste. Quando clico no valor do Tipo de E-mail para uma entrada na lista de E-mails Retornados, recebo “Ocorreu um erro: Discourse::NotFound”.

E se você marcar “Aviso”?

Já estava selecionado. Voltei um pouco mais no log e, embora eu veja mensagens ocasionais relacionadas a e-mail, não estou vendo as que você mencionou.

Eu tenho o mesmo problema com o Mailgun. Host diferente, então não é isso!

Eu me pergunto se há um problema com as instruções de configuração do Mailgun para configuração VERP:

2 curtidas

Isso está lá há um tempo, mas só começou a causar problemas agora que estou tentando investigar por que estou recebendo tantos bounces no momento.

O problema parece ser que não há link na coluna Email Type e nada por trás do ícone :information_source: (setas vermelhas):

Quando clico nesses, recebo isto:

Analisando o código da página, as tags anchor no HTML parecem estar sem o href completamente:

Tenho o VERP configurado para o Mailgun, e parece estar funcionando bem, de resto.

1 curtida

Esse é o comportamento esperado quando a resposta de rejeição não foi processada pelo Discourse. O recurso está funcionando corretamente se o Discourse receber as rejeições, caso contrário, ele mostrará essa resposta para todas as rejeições.

Você pode verificar e executar o teste de acordo com Configure VERP to handle bouncing e-mails?

1 curtida

Uma mensagem melhor seria boa nesse caso.

Você quer dizer que se o Discourse só descobre sobre a rejeição por meio de um webhook do Mailgun, os detalhes da rejeição nunca são enviados ao Discourse. Está correto?

Se estiver correto, haveria alguma maneira de esses detalhes serem enviados ao Discourse e registrados e exibidos no mesmo local que as rejeições recebidas pelo Discourse? Acho que a API do Mailgun permitiria isso ("Discourse::NotFound" error when click "Email Type" field on admin/email/bounced - #8 by Jonathan5).

Em que circunstância o Discourse lidaria com rejeições em vez do serviço de e-mail externo? (Eu sei que o Discourse pode rejeitar/recusar e-mails, mas quero dizer lidar com mensagens de rejeição recebidas de destinatários de e-mail pretendidos.)

3 curtidas

Concordo. Se algo não está realmente quebrado, não deve parecer quebrado. O Discourse certamente pode fornecer uma mensagem mais tranquilizadora.

3 curtidas