Impossible de recevoir le courrier du serveur de messagerie

Bonjour à tous,

Je connais ce problème, qui est bien connu et assez facile à rencontrer. J’ai lu et effectué de nombreux tests, mais je suis déjà bloqué à l’étape « envoi d’e-mail ».

J’ai suivi ce guide : discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub. Voici les étapes que j’ai suivies :

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

Accédez au dossier /samples/ et copiez standalone.yml vers /containers/app.yml.

Veuillez modifier les informations concernant votre serveur.
Ensuite :

sudo ./discourse-doctor

Première expérience

Lorsque mon fichier app.yml était configuré ainsi :

DISCOURSE_HOSTNAME : 'localhost'

Et que j’avais rempli les informations suivantes :

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

Le serveur de messagerie est également hébergé sur le réseau interne.
Au début, cela fonctionnait. Discourse pouvait correctement envoyer les e-mails d’inscription et j’avais également un accès normal à l’administration.

Cependant, lorsque j’ai défini le HOSTNAME sur localhost, je n’ai plus pu accéder au site via l’adresse IP interne (par exemple, 10.1.X.X) dans mon navigateur.


Deuxième expérience

J’ai donc uniquement modifié DISCOURSE_HOSTNAME sans toucher aux autres informations dans app.yml :

DISCOURSE_HOSTNAME : '10.1.3.91'

PS : 10.1.3.91 est mon adresse IP interne (réseau local).

Après ce changement de hostname, j’ai pu accéder au site via mon navigateur. Cependant, le serveur de messagerie ne fonctionne plus ; je ne reçois aucun e-mail de Discourse.


Complément

J’ai tenté d’envoyer un e-mail via Python en utilisant mon serveur SMTP.

Voici le script :

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

content = MIMEMultipart() 
content["subject"] = "Learn Code With Mike"  
content["from"] = " (mon e-mail) "  
content["to"] = " (e-mail de test) "
content.attach(MIMEText("Démonstration d'envoi d'e-mail en Python"))  


with smtplib.SMTP(host=" (identique à DISCOURSE_SMTP_ADDRESS) ", port="587") as smtp: 
    try:
        smtp.ehlo() 
        smtp.starttls()  
        smtp.login(" (identique à DISCOURSE_SMTP_USER_NAME) ", " (identique à DISCOURSE_SMTP_PASSWORD) ") 
        smtp.send_message(content)  
        print("Terminé !")
    except Exception as e:
        print("Message d'erreur : ", e)

Cela a fonctionné sans problème. Cela prouve-t-il que les informations SMTP de l’e-mail sont correctes et utilisables ?

Avez-vous une idée concernant ce problème ?

Concernant le serveur de messagerie, j’ai également essayé Elastic Email et Mailjet, mais sans succès.

Conclusion :

Si DISCOURSE_HOSTNAME est défini sur localhost, le serveur de messagerie fonctionne.
Si DISCOURSE_HOSTNAME est modifié pour une IP interne (c’est-à-dire une adresse IP locale), le serveur de messagerie ne fonctionne plus.

Merci beaucoup !!!

Cordialement,
Chieh

1 « J'aime »

Mise à jour :

Je peux recevoir l’e-mail au début de « Félicitations, vous avez installé Discourse ! » et « Enregistrer le compte administrateur » avec l’adresse IP interne spécifique lorsque j’accède depuis un autre appareil. Cependant, après ces étapes, une erreur apparaît indiquant que la page ne peut pas être trouvée. Pourquoi l’accès était-il possible via l’adresse IP interne au départ, et pourquoi cette adresse IP devient-elle invalide après ce paramétrage ?
C’est étrange…

Le problème semble avoir été résolu par mes soins.

Accédez à /etc/hosts

et définissez le nom d’hôte sur votre adresse IP.
Le nom d’hôte est également défini sur l’adresse IP.

DISCOURSE_HOSTNAME peut utiliser une adresse IP interne.
Dans ce cas, cela fonctionnera.

(Bien sûr, cela ne concerne que l’utilisation interne.)

3 « J'aime »

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