Falha no e-mail após a instalação

Instalei o Discourse e agora tenho acesso de administrador, mas ao tentar enviar convites ou e-mails de teste, ocorre uma falha total.

Tenho um servidor de e-mail (mail.mydomain.com) com a conta postmaster@mydomain.com. Após ler várias perguntas e respostas de suporte, parece que o domínio mydomain.com pode exigir registros DNS SPF e DKIM. Será que perdi isso nas instruções de instalação?

Encontrei e testei o registro SPF, e ele parece estar correto.
Consigo enviar e-mail da minha conta pessoal para postmaster@mydomain.com e ele é recebido normalmente.

No entanto, se eu enviar um e-mail de teste pelo Discourse, ele não é recebido. É necessário configurar o DKIM? Se sim, como instalo o DKIM? Mais uma vez, será que perdi essa etapa em algum lugar?

Desde já agradeço…

SPF e DKIM não devem impedir que o e-mail de saída do Discourse chegue ao seu servidor de e-mail. Verifique os /logs do seu fórum e os logs do servidor de e-mail em busca de mensagens de erro.

Qualquer documentação sobre isso virá do seu provedor de e-mail, pois não há uma única maneira de configurá-los. Mas, como observado, é extremamente improvável que isso seja a causa das falhas na entrega do seu e-mail.

Obrigado a todos. Desculpem pelo atraso. Parece que os testes de e-mail de saída caem em um buraco negro. Agora entendo que registros SPF e DKIM não são obrigatórios. Aqui está o que vejo agora ao fazer login como administrador:

/emails/settings: insiro qualquer endereço de e-mail (meu ou de um usuário convidado; do domínio do host ou não) e recebo esta mensagem de erro:

Houve um problema ao enviar o e-mail de teste. Verifique novamente suas configurações de correio, confirme se seu host não está bloqueando conexões de e-mail e tente novamente.

Pelo que entendo das configurações de e-mail no Discourse, acredito que estejam corretas, mas não encontrei uma definição real. O domínio do host não está bloqueando, pois consigo enviar um e-mail do meu endereço pessoal. Verifiquei o UFW do Droplet do Discourse e ele informa que está desativado.

/logs: os logs de erro estão vazios. Um erro óbvio (acima), mas não foi registrado! A opção “Registrar todas as falhas de processamento de e-mail em [/logs]” está ativada (verificado). Não encontrei nenhum erro no domínio do host.

Além disso, tenho um site WP com o plugin WP Discourse instalado, mas não ativado. Esse plugin poderia ajudar de alguma forma?

TIA

Edição…
Voltei ao Dashboard e vi isso:

Há 7 trabalhos de e-mail que falharam. Verifique seu app.yml e garanta que as configurações do servidor de correio estejam corretas. [Veja os trabalhos com falha no Sidekiq](https://talk.thesturdytree.com/sidekiq/retries)

Cliquei em Sidekiq e vejo 7 entradas que são duplicatas destas:

[em 3 horas](https://talk.thesturdytree.com/sidekiq/retries/1585096899.6700559-58d9041788be7dd98d743894) 15 [padrão](https://talk.thesturdytree.com/sidekiq/queues/default) Jobs::InviteEmail {"invite_id"=>2, "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout com #<TCPSocket:(closed)>

[em 3 horas](https://talk.thesturdytree.com/sidekiq/retries/1585097052.665957-fc6f06d948e7d37ec15354cc) 15 [crítico](https://talk.thesturdytree.com/sidekiq/queues/critical) Jobs::CriticalUserEmail {"type"=>"email_login", "user_id"=>1, "email_token"=>"da467ec8590f0ecb0220d3aed5b33c61", "current_site_id"=>"default"} Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout com #<TCPSocket:(closed)>

Essa página do painel de administração também diz “Você está atualizado!”, mas quando faço ssh no droplet, sou informado que “55 pacotes podem ser atualizados.” Isso requer alguma ação?

Questões independentes. O painel de administração informa que o próprio Discourse está atualizado. A mensagem ao fazer login no droplet indica que há software do sistema que pode ser atualizado. Você provavelmente deve investigar como configurar atualizações automáticas para esse sistema.

Isso parece indicar que sua instância do Discourse não consegue se conectar ao servidor de e-mail especificado na porta especificada. Verifique se sua configuração está correta e se a DO não está bloqueando conexões de saída na porta que você está tentando usar.

https://github.com/discourse/discourse/blob/master@{2020-03-24}/docs/INSTALL-cloud.md#post-install-maintenance

No Ubuntu, use o comando dpkg-reconfigure -plow unattended-upgrades.

Sugestões, na ordem lógica de execução:

  1. Verifique se seu droplet consegue se conectar ao servidor de e-mail via telnet
  2. Verifique se as credenciais SMTP estão funcionando independentemente do droplet

Se o passo 1 falhar, você tem um problema de rede. A DigitalOcean é conhecida por bloquear certas portas de saída, e isso é o problema em 85% dos casos.

Se ambos 1 e 2 funcionarem, verifique seu app.yml. É provável que a senha contenha um caractere que está impedindo a análise correta (~5% dos casos) ou que você não a tenha inserido corretamente.

Quanto ao servidor de e-mail, se você estiver hospedando seu próprio servidor em vez de usar um dos provedores recomendados, o SPF e o DKIM podem definitivamente ajudar na entrega, mas é provável que você esteja na ponta do iceberg em termos de problemas com e-mail.

Obrigado a todos pela ajuda.
Acredito que o problema era o meu servidor de e-mail fornecido pela GoDaddy. Nunca consegui identificar a causa exata do problema. Parece que a GoDaddy tem muitos problemas com contas compartilhadas. Por fim, decidi que não valia a pena a complicação e pesquisei provedores de e-mail recomendados, selecionando o mailjet.com. Criei uma conta gratuita no Mailjet e editei o app.yml de acordo. Foi necessária alguma configuração adicional do Mailjet. Novamente, testei o teste de e-mail do Discourse: sucesso. Minha comunidade Discourse é pequena, então não deve haver problema com o limite de e-mails gratuitos do Mailjet. Tudo parece estar bom por enquanto, mas vejo que ainda há muita configuração pela frente.
Obrigado novamente…