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@
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.
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.”
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”?
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
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?
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…
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.
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.