Nova instalação do Discourse/Docker não envia e-mails

Olá pessoal,
Quero migrar um fórum antigo do phpBB3 para o Discourse. Consegui configurar o Docker e acessar a Configuração Inicial. Infelizmente, nenhum e-mail está sendo enviado, então não consigo finalizar a configuração.
Fiz algumas depurações e não consegui encontrar o motivo, então estou recorrendo a vocês para obter ajuda.

Minha configuração é a seguinte: configurei o apache2 como um proxy reverso para o docker, o que funciona. Meu servidor de e-mail é um mailcow docker na mesma máquina. O servidor de e-mail foi testado minuciosamente e funciona bem diariamente via SMTP com STARTTLS na Porta 587 e webmail.

A configuração no meu app.yml está assim:

  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: discourse@example.com
  DISCOURSE_SMTP_PASSWORD: "password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)
  #DISCOURSE_SMTP_DOMAIN: mail.example.com
  DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com

quando executo ./discourse-doctor, recebo:

==================== TESTE DE E-MAIL ====================
Para um teste robusto, obtenha um endereço de http://www.mail-tester.com/
Ou apenas envie uma mensagem de teste para você mesmo.
Endereço de e-mail para teste de e-mail? ('n' para pular) [admin@example.com]:
Enviando e-mail para admin@example.com. . .
Testando o envio para admin@example.com usando mail.example.com:587, nome de usuário:discourse@example.com com autenticação simples.
=======================================
ERRO
=======================================
ERRO INESPERADO

Não é possível atribuir o endereço solicitado - connect(2) para [ipv6 correto]:587

=======================================
SOLUÇÃO
=======================================
Este não é um erro comum. Nenhuma solução recomendada existe!

Por favor, relate a mensagem de erro exata acima para https://meta.discourse.org/
(E uma solução, se você encontrar uma!)

Não conseguindo encontrar pessoas com mensagens de erro semelhantes na web, recorri a este tópico
Consegui me conectar facilmente ao servidor de e-mail com telnet de fora do contêiner.

O que tentei dentro do contêiner:

getent hosts mail.example.com

forneceu o endereço IPv6 correto
Mas então os erros começaram a aparecer:

openssl s_client -connect mail.example.com:587 -starttls smtp
140124593714496:error:0200206E:system library:connect:Connection timed out:../crypto/bio/b_sock2.c:110:
140124593714496:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=110
openssl s_client -6 -connect "[ipv6 correto]:587" -starttls smtp
139918557709632:error:02002063:system library:connect:Cannot assign requested address:../crypto/bio/b_sock2.c:110:
139918557709632:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=99
 openssl s_client -connect smtp.gmail.com:587 -starttls smtp

funciona muito bem
Quando tento o

openssl s_client -connect mail.example.com:587 -starttls smtp

de fora do contêiner, também funciona bem.
Meus logs do mailcow/postfix não mostram nada…
Estou perplexo. Podem me ajudar onde devo procurar a seguir?

1 curtida

Veja Solução de problemas de e-mail em uma nova instalação do Discourse.

O problema provavelmente é que seu endereço de e-mail de notificação não é um que você configurou seu servidor de marca para enviar.

Mas isso não explica os erros de “tempo limite de conexão”. Isso parece um problema de rede do docker.

1 curtida

Obrigado pela sua resposta. Tentei usar o mesmo endereço em ambos os campos, sem alteração, o mesmo erro.
Seguindo o tópico de Solução de Problemas:

O que os logs do Discourse dizem?

`Job exception: Cannot assign requested address - connect(2) for [IPv6 correto]:587

O que os logs do seu provedor de e-mail dizem?

Nenhuma entrada de log aparece relacionada a e-mails enviados do Discourse.

Então, tentei este Método https://www.saotn.org/test-smtp-authentication-starttls/ para ver se conseguiria autenticar via openssl, e funciona bem do servidor, mas não de dentro do contêiner, ele produz o erro que descrevi na primeira postagem.

Como posso descobrir o que está bloqueando a conexão aqui?

1 curtida

omfg foi tão fácil.
Eu só tive que ativar o IPv6 na minha rede Docker, apenas os três primeiros passos deste tutorial e funcionou.

3 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.