Impossibile ricevere la posta dal server di posta elettronica

Cari tutti,

Conosco questo problema, che è noto e piuttosto comune. Ho letto e provato molte test, ma mi sono già bloccato nella fase di “invio email”.

Ho seguito questa guida: discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Di seguito i miei passaggi:

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

Vai alla cartella /samples/, copia standalone.yml in /containers/app.yml.

Modifica le informazioni relative al tuo server.
Quindi:

sudo ./discourse-doctor

Prima esperienza

Quando il mio app.yml era impostato come:

DISCOURSE_HOSTNAME: 'localhost'

E ho compilato queste informazioni:

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

Il server email è anche costruito sulla rete interna.
All’inizio funzionava. Discourse inviava correttamente le email di registrazione e potevo accedere all’amministrazione normalmente.

Tuttavia, quando impostavo localhost come HOSTNAME, non potevo accedere tramite browser utilizzando l’IP interno (ad esempio, 10.1.X.X).


Seconda esperienza

Quindi ho modificato solo DISCOURSE_HOSTNAME senza cambiare altre informazioni in app.yml.

DISCOURSE_HOSTNAME: '10.1.3.91'

PS: 10.1.3.91 è il mio IP interno (di rete locale).

Dopo aver cambiato l’hostname in questo modo, ho potuto accedere tramite browser. Tuttavia, il server email non funzionava più. Non riuscivo a ricevere email da Discourse.


Integrazione

Ho provato a inviare un’email tramite Python utilizzando il mio SMTP.

Lo script è simile al seguente:

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"] = " (la mia email) "  
content["to"] = " (email di test) "
content.attach(MIMEText("Demo python send email"))  


with smtplib.SMTP(host=" (uguale a DISCOURSE_SMTP_ADDRESS) ", port="587") as smtp: 
    try:
        smtp.ehlo() 
        smtp.starttls()  
        smtp.login(" (uguale a DISCOURSE_SMTP_USER_NAME) ", " (uguale a DISCOURSE_SMTP_PASSWORD) ") 
        smtp.send_message(content)  
        print("Completato!")
    except Exception as e:
        print("Messaggio di errore: ", e)

Funzionava correttamente. Questo dimostra che le informazioni SMTP per l’email sono corrette e utilizzabili?

Avete qualche idea su questo problema?

Per quanto riguarda il server email, ho anche provato Elastic Email e Mailjet, ma senza successo.

Conclusione:

Se DISCOURSE_HOSTNAME è impostato su localhost, il server email funziona.
Se DISCOURSE_HOSTNAME viene modificato con un IP interno (cioè IP di rete locale), il server email non funziona.

Grazie mille!!!

Cordiali saluti,
Chieh

1 Mi Piace

Aggiornamento:

All’inizio, quando accedo da un altro dispositivo utilizzando l’indirizzo IP interno specifico, riesco a ricevere l’email con i messaggi “Congratulazioni, hai installato Discourse!” e “Registra l’account amministratore”. Tuttavia, dopo questi passaggi, ricevo un errore che indica che la pagina non può essere trovata. Perché era possibile accedere tramite l’indirizzo IP interno all’inizio e, dopo questa configurazione, l’indirizzo IP originale risulta non valido?
È molto strano…

Il problema sembra essere stato risolto da me.

Vai su /etc/hosts

e imposta il nome host come il tuo IP.
Anche il nome host è impostato sull’IP.

DISCOURSE_HOSTNAME può utilizzare un IP interno.
In tal modo funziona.

(Ovviamente, è destinato solo all’uso interno.)

3 Mi Piace

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