Ho appena eseguito un’installazione pulita di Discourse in un Digital Ocean Droplet, ed è andata abbastanza bene, ma non ho ricevuto l’email di notifica quando ho provato a registrare il mio account amministratore.
Ho seguito la Risoluzione dei problemi email, e non sono riuscito a trovare la soluzione finché non sono arrivato a uno dei commenti che diceva:
Le doppie virgolette funzionano. Se hai certi caratteri (come il backslash?) nella tua password, dovrai modificare il file con un editor come nano.
Questo, e la nota in /containers/app.yml riguardo al fatto che il “#” causa problemi, mi hanno fatto riflettere sulla mia password. Conteneva sia un underscore che una tilde.
Ho creato un nuovo account email con solo caratteri alfanumerici per la password, e questo ha risolto il problema. L’email ora funziona in ./discourse-doctor, e sono stato in grado di reinviare e ricevere l’email di notifica.
Ho pensato che sarebbe stata una buona idea condividerlo nel caso in cui qualcun altro si trovasse in difficoltà con SMTPAuthenticationError senza un motivo apparente. Prova con un account senza caratteri speciali nella password.
Ho una password con - al suo interno e non ho mai avuto i problemi che hai riscontrato.
# ha senso perché annulla il commento del codice nei file yml, da qualsiasi punto della riga: I commenti iniziano con il segno di cancelletto (#), possono iniziare ovunque su una riga e continuano fino alla fine della riga (YAML - Wikipedia).
Interessante. Se mi fosse stato chiesto di indovinare, dato che la password SMTP nel file app.yml è tra virgolette doppie, avrei pensato che qualsiasi carattere tranne una virgoletta doppia sarebbe andato bene. Mi fai dubitare se sia qualcos’altro che ho fatto.
Ho reimpostato DISCOURSE_SMTP_USER_NAME e DISCOURSE_SMTP_PASSWORD all’account originale che mi ha dato l’errore di autenticazione SMTP e, dopo aver distrutto l’app, quando ho eseguito ./launcher start app ho ricevuto il seguente errore:
found unknown escape character while parsing a quoted scalar at line 67 column 28 -e LANG=en_US.UTF-8
Errore di sintassi YAML. Controlla i file di configurazione in containers/*.yml.
Infatti, c’era un \ nella password che non avevo notato ieri.
Per confermare, ho utilizzato l’indirizzo email del nuovo account, ho cambiato la password dell’account con la password dell’account fallito senza il \, l’ho salvata in app.yml e ho riavviato l’app senza che il messaggio di errore si ripresentasse. Il test via email con discourse-doctor ha funzionato. Quindi, ho creato una nuova password con una serie di caratteri speciali ma non il # o il \ e ho ripetuto il test. Ha funzionato anche quello.
In sintesi, sembra che i caratteri speciali siano accettati nel campo DISCOURSE_SMTP_PASSWORD di app.yml, ad eccezione del segno di cancelletto #, della barra rovesciata \ e probabilmente delle virgolette doppie \"?