Não consigo receber e-mails do servidor de e-mail

Prezados,

Eu já conhecia esse problema, que é conhecido e bastante comum de ocorrer. Li bastante e fiz muitos testes, mas já estou travado na etapa de “envio de e-mail”.

Estive seguindo este guia: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Abaixo estão os meus passos:

git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

Vá até /samples/ e copie standalone.yml para /containers/app.yml.

Por favor, ajuste as informações do seu servidor.
Em seguida:

sudo ./discourse-doctor

Primeiro experimento

Quando configurei meu app.yml com:

DISCOURSE_HOSTNAME: 'localhost'

E preenchi as seguintes informações:

  DISCOURSE_SMTP_ADDRESS: XXX
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: XXX
  DISCOURSE_SMTP_PASSWORD: XXX
  DISCOURSE_SMTP_ENABLE_START_TLS: true

O servidor de e-mail também está em uma rede interna.
No início, tudo funcionou. O Discourse enviou corretamente o e-mail de registro e também pude acessar o painel administrativo normalmente.

No entanto, ao definir o HOSTNAME como localhost, não consigo acessar o sistema pelo navegador usando o IP interno (por exemplo, 10.1.X.X).


Segundo experimento

Então, alterei apenas o DISCOURSE_HOSTNAME e não modifiquei outras informações no app.yml:

DISCOURSE_HOSTNAME: '10.1.3.91'

Obs: 10.1.3.91 é o meu IP interno (da rede local).

Após essa alteração, consegui acessar o sistema pelo navegador. Porém, o servidor de e-mail parou de funcionar. Não consigo receber e-mails do Discourse.


Complemento

Tentei enviar um e-mail via Python usando meu SMTP.

O script é o seguinte:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib

content = MIMEMultipart()
content["subject"] = "Learn Code With Mike"
content["from"] = " (meu e-mail) "
content["to"] = " (e-mail de teste) "
content.attach(MIMEText("Demo python send email"))

with smtplib.SMTP(host=" (igual ao DISCOURSE_SMTP_ADDRESS) ", port="587") as smtp:
    try:
        smtp.ehlo()
        smtp.starttls()
        smtp.login(" (igual ao DISCOURSE_SMTP_USER_NAME) ", " (igual ao DISCOURSE_SMTP_PASSWORD) ")
        smtp.send_message(content)
        print("Concluído!")
    except Exception as e:
        print("Mensagem de erro: ", e)

Funcionou corretamente. Isso prova que as informações do SMTP estão corretas e podem ser usadas?

Alguém tem alguma ideia sobre esse problema?

Quanto ao servidor de e-mail, também tentei usar Elastic Email e Mailjet, mas sem sucesso.

Conclusão:

Se DISCOURSE_HOSTNAME for definido como localhost, o servidor de e-mail funciona.
Se DISCOURSE_HOSTNAME for alterado para um IP interno (ou seja, IP da rede local), o servidor de e-mail não funciona.

Muito obrigado!!!

Atenciosamente,
Chieh

1 curtida

Atualização:

No início, consigo receber o e-mail de “parabéns, você instalou o Discourse!” e “registrar conta de administrador” ao acessar por outro dispositivo usando o IP interno específico. No entanto, após esses passos, ocorre um erro indicando que a página não foi encontrada. Por que era possível acessar originalmente pelo IP interno e, após essa configuração, o IP original se torna inválido?
Que estranho…

O problema parece ter sido resolvido por mim.

Vá até /etc/hosts

e defina o nome do host como sendo seu IP.
O nome do host também está definido como IP.

DISCOURSE_HOSTNAME pode usar um IP interno.
Então, isso funcionará.

(Obviamente, isso é apenas para uso interno.)

3 curtidas

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