Problema de e-mail no discourse com proxy reverso

Configurei em meu app.yml o e-mail para ser algo como

  DISCOURSE_SMTP_ADDRESS: mail.mysecrect.tld
  DISCOURSE_SMTP_PORT: 465
  DISCOURSE_SMTP_USER_NAME: minegenix@mysecret.tld
  DISCOURSE_SMTP_PASSWORD: <secret>

Também encontrei isto nos logs:

falha
E-mail entregue 3ff63fed-4142-4042-ab33-29493b32b3a6@beta2.mysecret.tld (30001.9ms)
Exceção do trabalho: execução expirou

talvez você precise adicionar isto ao seu app.yml

DISCOURSE_SMTP_ENABLE_START_TLS: false

Ok, aliás, eu uso o Mailcow!

O servidor está executando discourse beta2.mysecret.tld - e não mysecret.tld?

Tente estas opções:

DISCOURSE_SMTP_ADDRESS: 172.17.0.1 # use o ip interno aqui - o domínio do servidor de e-mail pode não ser resolvido corretamente
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: "SEU-NOME-DE-USUÁRIO-SMTP"
DISCOURSE_SMTP_PASSWORD: "SUA-SENHA-SMTP"
#DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, padrão true)
DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none
DISCOURSE_SMTP_DOMAIN: mysecret.tld

mysecret.tld é apenas um placeholder escondendo o endereço do meu fórum real, pois não quero revelá-lo :slight_smile:

Você está enviando e-mails com um e-mail de remetente como “…\@ beta2. mysecret.tld” - mas sua conta mailcow é para “…\@mysecret.tld”?

Não, estou enviando e-mails de …@mysecret.tld e o site está em execução em beta2.mysecret.tld

@Sprisa adicione a configuração que postei e reconstrua.

Veja se isso ajuda.

@rrit você está perdendo o ponto :man_facepalming:

1 curtida

sim, estou fazendo isso no momento

1 curtida

aliás, preciso fazer bootstrap toda vez após a reconstrução?

Ok, adicionei as configurações, não ajudou.

Como depurar problemas na primeira conexão com o servidor SMTP

1. Entre no seu contêiner:

./launcher enter app

2. Verifique a resolução DNS para o nome do seu servidor SMTP via getent hosts:

( dig, nslookup, ping etc. não estão instalados dentro do contêiner.)

getent hosts seu.servidor.smtp

Resultado em caso de sucesso:

# IPv4
123.123.123.123 seu.servidor.smtp

# IPv6
2001:db8:0:0:0:ff00:42:8329 seu.servidor.smtp

3. Tente abrir uma conexão com seu servidor SMTP via openssl:

( telnet, nc etc. não estão instalados dentro do contêiner.)

Experimente algumas configurações diferentes até conseguir estabelecer uma conexão.

openssl s_client -connect seu.servidor.smtp:465
openssl s_client -connect seu.servidor.smtp:587 -starttls smtp

# IPv4
openssl s_client -connect 172.17.0.123:465
openssl s_client -connect 172.17.0.123:587 -starttls smtp

# IPv6
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:465"
openssl s_client -6 -connect "[2001:db8:0:0:0:ff00:42:8329]:587" -starttls smtp

Veja: Como verificar a conexão SMTP –> Passo 3: Verificando a Conexão SMTP Sobre TLS Usando Openssl

4. Use suas configurações de conexão de trabalho encontradas com o Discourse.

:rocket:

Bônus: mostrar o IP do Discourse de dentro do contêiner docker

( ifconfig , ip etc. não estão instalados dentro do contêiner.)

hostname -I

Resultado como:

172.17.0.2

Não consigo me conectar com o openssl, também só recebo isso: do getent

2606:4700:3032::ac43:d2f1 mail.secret.tdl
2606:4700:3033::6815:4db8 mail.secret.tld

(secret.tld substituindo meu domínio real)

Um tiro no escuro: Este é um IP público? O seu mailcow está configurado para escutar conexões smtp neste IP público ou apenas em uma rede interna?

Dentro do contêiner Discourse, você pode obter o IP dos seus contêineres via:

hostname -I

O seu mailcow também está na mesma rede interna (docker)?

172.17.0.2 é o que eu recebo de hostname -I

Você consegue acessar seu contêiner do Mailcow e também obter hostname -I? Mailcow e Discourse são dois contêineres Docker separados no mesmo host?

como entro no contêiner do mailcow? não há script de inicialização.

Eu também não sei sobre o mailcow. Talvez seja melhor verificar com a comunidade do mailcow: https://community.mailcow.email/

O que devo usar para obter sistemas de e-mail, ou qual software posso configurar no Ubuntu que funcionaria como serviço de e-mail nos meus fóruns?