E-mail de ativação do administrador não enviado em nova instalação auto-hospedada (ubuntu 20.04)

Olá Comunidade,

Tenho uma instalação auto-hospedada do Discourse funcionando bem em um VPS com Ubuntu 18.04 há cerca de um ano. Como o fórum cresceu, comecei a me preparar para migrar para um VPS mais potente. Então, usei uma imagem mínima do Ubuntu 20.04, apliquei algumas configurações típicas de segurança e instalei o Discourse via Docker seguindo o guia de instalação de 30 minutos. Usei exatamente os mesmos valores da instalação que já funcionava bem. Mas: o e-mail de ativação não está sendo enviado. O guia Solução de problemas de e-mail em uma nova instalação do Discourse não ajudou — consigo me conectar usando telnet, mas recebo o seguinte erro ao executar ./discourse-doctor:

>==================== TESTE DE E-MAIL ====================
Para um teste robusto, obtenha um endereço em http //www mail-tester com/
Ou apenas envie uma mensagem de teste para si mesmo.
Endereço de e-mail para o teste? ('n' para pular) [anonymizado]: test-9ymkghbvc@srv1 mail-tester com
Enviando e-mail para test-9ymkghbvc@srv1.mail-tester com. . .
Testando o envio para test-9ymkghbvc@srv1.mail-tester com usando smtp mailbox org:587.
==================== ERRO ======================
                                    ERRO INESPERADO
>
>503 5.5.1 Erro: autenticação não habilitada
>
>
>================== SOLUÇÃO =====================
>Este não é um erro comum. Não existe uma solução recomendada!
>
>Por favor, relate a mensagem de erro exata acima em https //meta discourse org/
(E uma solução, se você encontrar uma!)
=================================================

(tive que remover algumas partes das URLs acima para conseguir postar aqui)

Fato estranho: recebo o mesmo erro ao executar ./discourse-doctor no meu VPS que já está funcionando bem também, então não sei se o erro é relevante.
Como podem ver, estou usando o mailbox.org como provedor de e-mail, que funciona muito bem e é uma ótima escolha em termos de privacidade e infraestrutura de e-mail robusta. Verifiquei o host e a porta, e uso isso no Thunderbird e também na outra instalação do Discourse há anos.

Alguma ideia? A única diferença que vejo entre os dois VPS é que o que está funcionando roda o Ubuntu 18.04, enquanto o problema ocorre no VPS com Ubuntu 20.04.

Obrigado, cazee

Durante o seu endurecimento, você bloqueou acidentalmente a porta 587?

Há um erro de digitação no seu arquivo yaml.app?

smtp mailbox org:587

Deveria ser

smtp.mailbox org:587

Observe o ponto.

Obrigado pelas suas ideias.

A porta 587 está aberta; consigo conectar ao servidor SMTP usando o telnet, conforme mencionado no guia de solução de problemas.
Também testei com o UFW desativado, mas o resultado foi o mesmo.

Não há erro de digitação no arquivo YAML — removi esses pontos intencionalmente na minha postagem (nova conta no fórum — apenas 2 URLs permitidas por postagem).

O que mais posso verificar ou fazer?

Poste o código em blocos de código adequados, é por isso que você teve os problemas que teve.

Eu consegui resolver esse problema - finalmente.

O motivo foi o endereço de e-mail do remetente que o Discourse usa por padrão. Ele é construído a partir do nome de host inserido na configuração (no meu caso, algo semelhante a v220200xxxxxxxxxxxx.powersrv.de), resultando no endereço de remetente noreply@v220200xxxxxxxxxxxx.powersrv.de, que é rejeitado pelo servidor SMTP.

Então, por que uso esse nome de host pouco amigável? Apenas porque o servidor está destinado a substituir o existente, que está ficando pequeno para nossa comunidade Discourse em crescimento. Estou preparando e testando o novo servidor antes de alterar as configurações de DNS para apontar para este novo servidor mais tarde. Quero apenas economizar o tempo de criar configurações de DNS amigáveis temporárias aqui.

Como corrigir o problema?
Procure por estas linhas no final do seu app.yml:

## Se quiser definir o endereço de e-mail 'De' para seu primeiro registro, descomente e altere:
## Após receber o primeiro e-mail de inscrição, comente a linha novamente. Ela só precisa ser executada uma vez.

Descomente e ajuste a última linha para um endereço que seu servidor SMTP aceite como remetente válido, por exemplo:
- exec: rails r "SiteSetting.notification_email='USUARIO@DOMINIO.TLD'"

Agora execute ./launcher rebuild app para aplicar as alterações e, voilà: o e-mail de ativação é enviado e você pode ativar a conta de administrador e concluir a configuração.

Como descobri?
Criei uma nova conta de e-mail com meu provedor de hospedagem e executei a configuração do Discourse novamente com essas credenciais SMTP — e recebi o e-mail de ativação como esperado. Então, sabia que o problema estava relacionado às configurações SMTP (e não a qualquer outra coisa relacionada à configuração do Ubuntu / Docker / Discourse).
Depois de ativar a conta de administrador com esse outro servidor SMTP, fui em Configurações > E-mail > Ignorados e encontrei as tentativas falhas de envio do e-mail de ativação: 553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>: Endereço de remetente rejeitado: não pertence ao usuário USUARIO@DOMINIO.TLD

Conclusão
Gostaria de chamar a atenção da equipe de desenvolvimento do Discourse para a solicitação de recurso Sugestão - permitir configuração opcional de e-mail “de” do sistema durante a configuração. Por favor, considerem instalações de teste (por exemplo, como uma cópia para executar alguns testes antes da atualização real de uma instância) sem um endereço de host amigável. Seria muito mais suave configurar isso sem precisar editar o app.yaml. Além disso, na minha opinião, é bom dar ao administrador a opção de usar endereços de e-mail não vinculados ao nome de host do Discourse.

Obrigado :slight_smile:

Também agradeço ao @codinghorror por me indicar como postar blocos de código.

Estou trabalhando em uma alteração no discourse-setup que exigirá que você defina o notification_email durante o processo de configuração. Isso deve resolver problemas como o seu a partir de agora.

Isso já foi mesclado e será perguntado em novas instalações!