Acabo de hacer una instalación limpia de Discourse en un Digital Ocean Droplet, y fue bastante bien, pero no recibí el correo electrónico de notificación cuando intenté registrar mi cuenta de administrador.
Revisé el correo de Solución de problemas, y no pude encontrar la solución hasta que llegué a uno de los comentarios que decía:
Las comillas dobles funcionan. Si tienes ciertos caracteres (¿como la barra invertida?) en tu contraseña, necesitarás editar el archivo con un editor como nano.
Eso, y la nota en /containers/app.yml sobre el “#” causando problemas, me hicieron dudar de mi contraseña. Contenía tanto un guion bajo como una tilde.
Creé una nueva cuenta de correo electrónico con solo caracteres alfanuméricos para la contraseña, y eso solucionó el problema. El correo electrónico ahora funciona en ./discourse-doctor, y pude reenviar y recibir el correo electrónico de notificación.
Pensé que sería una buena idea compartir esto en caso de que a alguien más le cueste lidiar con el SMTPAuthenticationError sin razón aparente. Prueba con una cuenta sin caracteres especiales en la contraseña.
Tengo una contraseña con - y nunca tuve los problemas que tuviste.
# tiene sentido porque anula los comentarios en archivos yml, desde cualquier lugar de la línea: Los comentarios comienzan con el signo de número (#), pueden empezar en cualquier lugar de una línea y continúan hasta el final de la línea (YAML - Wikipedia).
Interesante. Si me hubieran pedido que adivinara, dado que la contraseña SMTP en el archivo app.yml está entre comillas dobles, habría supuesto que cualquier carácter excepto una comilla doble estaría bien. Me hace preguntarme si es algo más que hice.
Restablecí DISCOURSE_SMTP_USER_NAME y DISCOURSE_SMTP_PASSWORD a la cuenta original que me dio el error de autenticación SMTP, y después de destruir la aplicación, cuando ejecuté ./launcher start app obtuve el siguiente error:
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.
Efectivamente, había una \ en la contraseña que no había notado ayer.
Para confirmar, usé la dirección de correo electrónico de la nueva cuenta, cambié la contraseña de la cuenta a la contraseña de la cuenta fallida sin la \, la guardé en app.yml y reinicié la aplicación sin que el mensaje de error se repitiera. La prueba de correo electrónico con discourse-doctor funcionó. Luego, creé una nueva contraseña con una gran cantidad de caracteres especiales pero sin el # ni la \ y repetí la prueba. También funcionó.
En resumen, parece que los caracteres especiales están bien en el campo DISCOURSE_SMTP_PASSWORD de app.yml, con la excepción del signo de número #, la barra invertida \ y, probablemente, la comilla doble \"?