Notificações incompatíveis com o reply by email

Li atentamente os guias sobre e-mails neste link Email delivery configuration checklist e os seguintes.

Estudei este link How to setup "Reply by email address" now that it must be different from the "Notification email", e este Notification email cannot be the same as reply by email.

Todos os endereços que uso no fórum podem enviar ou receber e-mails por um cliente de e-mail como Thunderbird ou Claws Mail.

Existem quatro endereços diferentes, apenas os três primeiros estão relacionados a este tópico:

  • o da administração em app.yml: admin@
  • o das notificações em app.yml: forum@
  • o do reply-to: reply@
  • e o da publicação por e-mail: questions@
  1. As notificações obtidas pelo status de lista de discussão do fórum são enviadas corretamente. E o teste de envio da página admin/email/server-settings ocorre sem problemas.

  2. Se eu configurar a resposta por e-mail, essa funcionalidade opera corretamente, mas as notificações param de funcionar.

O teste de envio anterior falha com o status “501 5.5.4 You are not allowed to send from this address.”

  1. Se eu desativar a resposta por e-mail, o teste volta a passar corretamente.

Quem pode me explicar por que estou recebendo este erro e como configurar corretamente tanto as notificações quanto o “reply by email”?

2 curtidas

Essa mensagem é do seu serviço de envio de e-mail. É bem clara.

Você precisa enviar de um endereço de e-mail que seu servidor smtp possa usar. É algo como se estivesse configurado para enviar de example.com e você agora está enviando de forum.example.com

4 curtidas

Por que então em um caso o teste de envio está OK e fica KO quando eu configuro o “reply by email”? Eu especifico que não mudo nada na configuração das notificações.

O que acontece no nível do Discourse na preparação dos e-mails?

1 curtida

O problema realmente vem do Discourse.

Ao refinar a configuração dos logs, vejo que a mensagem postada é de fato autenticada pelo endereço correto:

2026-02-25T12:54:24Z TRACE Data store
iteration operation (store.data-iterate) elapsed = 0ms
<3.14, remotePort = 47104, accountName =
“forum.cagut@domain.tld”, accountId = 31

Mas se torna

2026-02-25T12:54:24Z ^\[\[35;1mTRACE ^\[\[37;1mRaw SMTP output sent
(smtp.raw-output) listenerId = “submissions”, localPort = 465, remoteIp
= 51.178.53.14, ^>
<53.14, remotePort = 47104, size = 73,
contents = “MAIL
FROM:<reply.cagut+verp-8bf40c695b1f612e555cf25f3c14c9b8@domain.tld>\\r\\n”

O servidor de e-mail não tem conhecimento desse formato de endereço.

1 curtida

Esse número mágico é como o Discourse conecta as respostas com o tópico.

Você precisará de outro servidor de e-mail (ou alterar este para suportar endereços +) ou não usar a resposta por e-mail.

Sim, eu sei que este é um identificador para usar o “responder por e-mail”.

Portanto, o teste de envio de e-mails não funciona quando o “responder por e-mail” está ativo. A documentação não especifica isso e o erro vem do Discourse e não do servidor de e-mail, o que foi sua primeira resposta!

Aliás, como um endereço “from” pode ter esse “número mágico”? Este formato de endereço é usado nos cabeçalhos.
Sua resposta não é de forma alguma uma resposta.

Esta transformação do “From” não deve ser feita.

E dizer que devemos abrir mão de uma funcionalidade prevista pelo software é estranho…

Amanhã, farei outros estudos.

1 curtida

Não é uma transformação do cabeçalho em si - quando a resposta por e-mail está ativada, o Discourse envia um e-mail com o envelope-from definido para o padrão de endereço reply_by_email_address e também define reply-to: se o e-mail for passível de resposta.

Por exemplo, aqui no meta é:

notification_email: notifications@meta.discoursemail.com
reply_by_email_address: incoming+%{reply_key}@meta.discoursemail.com

o que se transforma em:

Return-Path: <incoming+verp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>
From: Person <notifications@meta.discoursemail.com>
Reply-To: Person <incoming+xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@meta.discoursemail.com>

O e-mail de notificação vai para o cabeçalho From, e reply_by_email_address vai para o envelope-from. Configuramos nosso servidor de entrada de e-mail de modo que qualquer coisa endereçada a ...@meta.discoursemail.com seja entregue ao meta, o que faz isso funcionar.

Mas se o seu servidor de e-mail não permitir que você use este envelope-from, você receberá o erro que está relatando.

Este erro está definitivamente vindo do servidor de e-mail. O Discourse pode estar relatando para você, mas o servidor de e-mail está gerando-o.

2 curtidas