Erreur d'authentification SMTP de Discourse-Doctor sur une nouvelle installation

Je viens de faire une nouvelle installation de Discourse dans un Droplet Digital Ocean, et cela s’est plutôt bien passé, mais je n’ai pas reçu l’e-mail de notification lorsque j’ai essayé d’enregistrer mon compte administrateur.

J’ai parcouru le Dépannage des e-mails, et je n’ai pas trouvé la solution jusqu’à ce que j’arrive à l’un des commentaires qui disait :

Les guillemets doubles fonctionnent. Si vous avez certains caractères (comme un antislash ?) dans votre mot de passe, vous devrez modifier le fichier avec un éditeur comme nano.

Cela, et la note dans /containers/app.yml concernant le “#” qui cause des problèmes, m’ont fait me questionner sur mon mot de passe. Il contenait à la fois un underscore et un tilde.

J’ai créé un nouveau compte e-mail avec uniquement des caractères alphanumériques pour le mot de passe, et cela a résolu le problème. L’e-mail fonctionne maintenant dans ./discourse-doctor, et j’ai pu renvoyer et recevoir l’e-mail de notification.

J’ai pensé que ce serait une bonne idée de partager cela au cas où quelqu’un d’autre aurait du mal avec le SMTPAuthenticationError sans raison apparente. Essayez un compte sans caractères spéciaux dans le mot de passe. :grinning:

3 « J'aime »

J’ai un mot de passe avec un - dedans, et je n’ai jamais eu les problèmes que vous avez rencontrés.

Le # a du sens car il annule les commentaires dans les fichiers yml, depuis n’importe où dans la ligne : Les commentaires commencent par le signe dièse (#), peuvent commencer n’importe où sur une ligne et se poursuivent jusqu’à la fin de la ligne (YAML - Wikipedia).

1 « J'aime »

@MarcP :

Intéressant. Si on m’avait demandé de deviner, étant donné que le mot de passe SMTP dans le fichier app.yml est entre guillemets doubles, j’aurais deviné que n’importe quel caractère sauf un guillemet double aurait été acceptable. Vous me faites me demander si c’est autre chose que j’ai fait.

Je vais faire d’autres tests et je posterai les résultats.

1 « J'aime »

C’est ce que j’obtiens pour être pressé.

J’ai réinitialisé DISCOURSE_SMTP_USER_NAME et DISCOURSE_SMTP_PASSWORD au compte d’origine qui m’a donné l’erreur d’authentification SMTP, et après avoir détruit l’application, lorsque j’ai exécuté ./launcher start app, j’ai obtenu l’erreur suivante :

found unknown escape character while parsing a quoted scalar at line 67 column 28 -e LANG=en_US.UTF-8
YAML syntax error. Please check your containers/*.yml config files.

Effectivement, il y avait un \\ dans le mot de passe que je n’avais pas remarqué hier.

Pour confirmer, j’ai utilisé l’adresse e-mail du nouveau compte, j’ai changé le mot de passe du compte pour celui du compte défaillant sans le \\, je l’ai sauvegardé dans app.yml, et j’ai redémarré l’application sans que le message d’erreur ne se reproduise. Le test d’e-mail avec discourse-doctor a fonctionné. Ensuite, j’ai créé un nouveau mot de passe avec une série de caractères spéciaux mais sans le # ni le \\ et j’ai répété le test. Cela a également fonctionné.

En résumé, il semble que les caractères spéciaux soient acceptés dans le champ DISCOURSE_SMTP_PASSWORD de app.yml, à l’exception du signe dièse #, de la barre oblique inversée \\, et probablement du guillemet double \" ?

2 « J'aime »

:+1: J’aime ça, Excellent :sunglasses: