Activation de l'e-mail administrateur non envoyée lors d'une nouvelle installation auto-hébergée (ubuntu 20.04)

Salut la communauté,

J’ai une installation Discourse auto-hébergée bien rodée sur un VPS sous Ubuntu 18.04 depuis environ un an. Comme le forum a grandi, j’ai commencé à préparer la migration vers un VPS plus puissant. J’ai donc pris une image minimale d’Ubuntu 20.04, appliqué quelques durcissements typiques et installé Discourse via Docker en suivant le guide d’installation en 30 minutes. J’ai utilisé exactement les mêmes valeurs que pour l’installation qui fonctionne bien. Mais : l’e-mail d’activation n’est pas envoyé. Le guide Dépannage de l’envoi d’e-mails sur une nouvelle installation Discourse n’a pas aidé — je peux me connecter via telnet, mais j’obtiens l’erreur suivante en exécutant ./discourse-doctor :

>==================== TEST E-MAIL ====================
Pour un test robuste, obtenez une adresse depuis http //www mail-tester com/
Ou envoyez simplement un message de test à vous-même.
Adresse e-mail pour le test ? ('n' pour ignorer) [anonymisé] : test-9ymkghbvc@srv1 mail-tester com
Envoi du message à test-9ymkghbvc@srv1.mail-tester com...
Test de l'envoi vers test-9ymkghbvc@srv1.mail-tester com via smtp mailbox org:587.
==================== ERREUR ======================
                                    ERREUR INATTENDUE
>
>503 5.5.1 Erreur : l'authentification n'est pas activée
>
>
>================== SOLUTION =====================
>Ce n'est pas une erreur courante. Aucune solution recommandée n'existe !
>
>Veuillez signaler le message d'erreur exact ci-dessus à https //meta discourse org/
(Et une solution, si vous en trouvez une !)
=================================================

(j’ai dû retirer certains éléments des URLs ci-dessus pour pouvoir publier ici)

Faits étranges : j’obtiens la même erreur en exécutant ./discourse-doctor sur mon VPS qui fonctionne bien également, donc je ne sais pas si cette erreur est pertinente.
Comme vous pouvez le voir, j’utilise mailbox.org comme fournisseur d’e-mail, qui fonctionne très bien et est un excellent choix en termes de confidentialité et d’une infrastructure e-mail robuste. J’ai vérifié l’hôte et le port, et j’utilise ces paramètres depuis des années dans Thunderbird ainsi que dans l’autre installation Discourse.

Des idées ? La seule différence que je vois entre les deux VPS est que celui qui fonctionne tourne sous Ubuntu 18.08, tandis que le problème se produit sur le VPS sous Ubuntu 20.04.

Merci, cazee

Lors de votre durcissement, avez-vous accidentellement bloqué le port 587 ?

Y a-t-il une faute de frappe dans votre fichier yaml.app ?

smtp mailbox org:587

Cela devrait-il être

smtp.mailbox org:587

Remarquez le point.

Merci pour vos idées.

Le port 587 est ouvert, je peux me connecter au serveur SMTP avec telnet comme indiqué dans le guide de dépannage.
J’ai également testé avec ufw désactivé, même résultat.

Pas d’erreur de frappe dans le fichier YAML — j’ai retiré ces points intentionnellement dans mon message (nouveau compte forum, seulement 2 URLs autorisées par message).

Que puis-je vérifier ou faire d’autre ?

Postez le code dans de vrais blocs de code, c’est pourquoi vous avez rencontré les problèmes que vous avez eus.

J’ai enfin résolu ce problème.

La raison en était l’adresse e-mail d’expéditeur utilisée par défaut par Discourse. Elle est construite à partir du nom d’hôte saisi lors de la configuration (dans mon cas, quelque chose de similaire à v220200xxxxxxxxxxxx.powersrv.de), ce qui donne l’adresse d’expéditeur noreply@v220200xxxxxxxxxxxx.powersrv.de, laquelle est rejetée par le serveur SMTP.

Alors, pourquoi utiliser ce nom d’hôte peu convivial ? Simplement parce que ce serveur est destiné à remplacer l’ancien, devenu trop petit pour notre communauté Discourse grandissante. Je prépare et teste le nouveau serveur avant de basculer les paramètres DNS pour pointer vers ce nouveau serveur plus tard. Je souhaite simplement éviter de perdre du temps à créer des paramètres DNS temporaires et conviviaux ici.

Comment résoudre le problème ?
Recherchez ces lignes à la fin de votre fichier app.yml :

## Si vous souhaitez définir l'adresse e-mail « De » pour votre première inscription, décommentez et modifiez :
## Après avoir reçu le premier e-mail d'inscription, re-commentez la ligne. Elle ne doit être exécutée qu'une seule fois.

Décommentez et ajustez la dernière ligne pour indiquer une adresse que votre serveur SMTP accepte comme expéditeur valide, par exemple :
- exec: rails r "SiteSetting.notification_email='UTILISATEUR@DOMAINE.TLD'"

Exécutez ensuite ./launcher rebuild app pour appliquer les modifications, et voilà : l’e-mail d’activation est maintenant envoyé, vous pouvez activer le compte administrateur et terminer la configuration.

Comment ai-je découvert cela ?
J’ai créé un nouveau compte e-mail chez mon fournisseur d’espace web et j’ai relancé la configuration de Discourse avec ces identifiants SMTP. J’ai reçu l’e-mail d’activation comme prévu. J’ai donc su que le problème était lié aux paramètres SMTP (et non à d’autres aspects liés à la configuration Ubuntu / Docker / Discourse).
Après avoir activé le compte administrateur avec ce serveur SMTP alternatif, je suis allé dans Paramètres > E-mail > Ignoré et j’ai trouvé les tentatives échouées d’envoi de l’e-mail d’activation : 553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de> : Adresse d'expéditeur rejetée : non appartenant à l'utilisateur UTILISATEUR@DOMAINE.TLD

Conclusion
Je tiens à attirer l’attention de l’équipe de développement de Discourse sur la demande de fonctionnalité Suggestion - permettre un paramètre facultatif de l’adresse « De » du système pendant la configuration. Veuillez prendre en compte les installations de test (par exemple, une copie pour effectuer des tests avant une mise à niveau réelle d’une instance) qui n’ont pas d’adresse d’hôte conviviale. Il serait beaucoup plus fluide de les configurer sans avoir à modifier le fichier app.yml. De plus, à mon avis, il est bon de laisser à l’administrateur le choix d’utiliser des adresses e-mail non liées au nom d’hôte de Discourse.

Merci :slight_smile:

Merci également à @codinghorror pour m’avoir orienté vers la façon de publier des blocs de code.

Je travaille sur une modification de discourse-setup qui vous obligera à définir l’adresse e-mail de notification (notification_email) lors du processus de configuration. Cela devrait résoudre vos problèmes à l’avenir.

Ceci a maintenant été fusionné et sera demandé lors des nouvelles installations !