No se puede recibir el correo del servidor de correo

Estimados todos,

Conozco este problema; es un problema conocido y bastante común. He leído y realizado muchas pruebas, pero ya me he quedado atascado en la etapa de “enviar correo electrónico”.

Estaba siguiendo esta guía: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. A continuación, detallo mis pasos:

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

Diríjase a /samples/ y copie standalone.yml a /containers/app.yml.

Por favor, actualice la información sobre su servidor.
A continuación:

sudo ./discourse-doctor

Primer experimento

Cuando mi app.yml estaba configurado así:

DISCOURSE_HOSTNAME : 'localhost'

Y completé esta información:

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

El servidor de correo también está alojado en la red interna.
Al principio, funcionó correctamente. Discourse pudo enviar el correo de registro y también pude acceder al panel de administración con normalidad.

Sin embargo, cuando configuré HOSTNAME como localhost, no pude acceder mediante la IP interna (por ejemplo, 10.1.X.X) desde el navegador.


Segundo experimento

Por lo tanto, solo modifiqué DISCOURSE_HOSTNAME y no cambié otra información en app.yml:

DISCOURSE_HOSTNAME : '10.1.3.91'

Nota: 10.1.3.91 es mi IP interna (de red local).

Después de cambiar el hostname de esta manera, pude acceder desde mi navegador. Sin embargo, el servidor de correo dejó de funcionar. No puedo recibir correos de Discourse.


Complemento

Intenté enviar un correo mediante Python usando mi SMTP.

El script es el siguiente:

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

content = MIMEMultipart() 
content["subject"] = "Learn Code With Mike"  
content["from"] = " (mi correo) "  
content["to"] = " (correo de prueba) "
content.attach(MIMEText("Demo python send email"))  


with smtplib.SMTP(host=" (igual que DISCOURSE_SMTP_ADDRESS) ", port="587") as smtp: 
    try:
        smtp.ehlo() 
        smtp.starttls()  
        smtp.login(" (igual que DISCOURSE_SMTP_USER_NAME) ", " (igual que DISCOURSE_SMTP_PASSWORD) ") 
        smtp.send_message(content)  
        print("¡Completado!")
    except Exception as e:
        print("Mensaje de error: ", e)

Funcionó correctamente. ¿Esto demuestra que la información de SMTP es correcta y usable?

¿Tienen alguna idea sobre este problema?

En cuanto al servidor de correo, también probé con Elastic Email y Mailjet, pero tampoco funcionó.

Conclusión:

Si DISCOURSE_HOSTNAME se establece en localhost, el servidor de correo funciona.
Si DISCOURSE_HOSTNAME se cambia a una IP interna (es decir, IP de red local), el servidor de correo no funciona.

¡Muchas gracias!

Saludos cordiales,
Chieh

1 me gusta

Actualización:

Al principio, puedo recibir los correos electrónicos de «¡Felicidades, has instalado Discourse!» y «Registrar cuenta de administrador» con la dirección IP interna específica cuando accedo desde otro dispositivo. Sin embargo, después de estos pasos, aparece un error indicando que no se puede encontrar la página. ¿Por qué era posible acceder originalmente mediante la IP interna y, tras esta configuración, esa misma IP deja de ser válida?
Qué extraño…

Parece que el problema se ha resuelto por mí mismo.

Ve a /etc/hosts

y configura el nombre de host como tu IP.
El nombre de host también está configurado con la IP.

DISCOURSE_HOSTNAME puede usar una IP interna.
Entonces funcionará.

(Por supuesto, esto es solo para uso interno.)

3 Me gusta

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