Email de activación de administrador no enviado en instalación autoalojada nueva (ubuntu 20.04)

Hola Comunidad,

Tengo una instalación de Discourse autoalojada y bien configurada en un VPS con Ubuntu 18.04 desde hace aproximadamente un año. A medida que el foro ha crecido, comencé a prepararme para migrar a un VPS más potente. Por lo tanto, tomé una imagen mínima de Ubuntu 20.04, apliqué algunas medidas de endurecimiento típicas e instalé Discourse Docker siguiendo la guía de instalación de 30 minutos. Utilicé exactamente los mismos valores que en la instalación que ya funcionaba bien. Sin embargo: el correo de activación no se envía. La guía Solución de problemas de correo electrónico en una nueva instalación de Discourse no me ayudó; puedo conectarme usando telnet, pero obtengo el siguiente error al ejecutar ./discourse-doctor:

>==================== PRUEBA DE CORREO ====================
Para una prueba robusta, obtén una dirección en http //www mail-tester com/
O simplemente envía un mensaje de prueba a ti mismo.
¿Dirección de correo para la prueba? ('n' para omitir) [anonimizado]: test-9ymkghbvc@srv1 mail-tester com
Enviando correo a test-9ymkghbvc@srv1.mail-tester com...
Probando el envío a test-9ymkghbvc@srv1.mail-tester com usando smtp mailbox org:587.
==================== ERROR ======================
                                    ERROR INESPERADO
>
>503 5.5.1 Error: autenticación no habilitada
>
>
>================== SOLUCIÓN =====================
>Este no es un error común. ¡No existe una solución recomendada!
>
>Por favor, reporta el mensaje de error exacto anterior en https //meta discourse org/
(¡Y una solución, si la encuentras!)
=================================================

(tuve que eliminar algunas partes de las URLs anteriores para poder publicarlas aquí)

Dato extraño: obtengo el mismo error al ejecutar ./discourse-doctor en mi VPS que funciona bien, así que no sé si el error es relevante.
Como pueden ver, estoy utilizando mailbox.org como proveedor de correo electrónico, el cual funciona muy bien y es una excelente opción en términos de privacidad y una configuración robusta de infraestructura de correo. He verificado el host y el puerto, y los utilizo en Thunderbird y también en la otra instalación de Discourse desde hace años.

¿Alguna idea? La única diferencia que veo entre ambos VPS es que el que funciona corre Ubuntu 18.08, mientras que el problema ocurre en el VPS con Ubuntu 20.04.

Gracias, cazee

Durante tu endurecimiento, ¿bloqueaste accidentalmente el puerto 587?

¿Hay un error tipográfico en tu archivo yaml.app?

smtp mailbox org:587

¿Debería ser

smtp.mailbox org:587

Fíjate en el punto.

Gracias por tus ideas.

El puerto 587 está abierto; puedo conectarme al servidor SMTP con telnet, como se indica en la guía de solución de problemas.
También lo probé con ufw desactivado, con el mismo resultado.

No hay errores tipográficos en el archivo YAML: eliminé esos puntos intencionalmente en mi publicación (cuenta nueva en el foro; solo se permiten 2 URLs en una publicación).

¿Qué más puedo verificar o hacer?

Publica el código en bloques de código adecuados, por eso surgieron los problemas que tuviste.

Pude resolver este problema, ¡finalmente!

La razón fue la dirección de correo electrónico del remitente que Discourse utiliza por defecto. Se genera a partir del nombre de host ingresado durante la configuración (en mi caso, algo similar a v220200xxxxxxxxxxxx.powersrv.de), lo que resulta en la dirección de remitente noreply@v220200xxxxxxxxxxxx.powersrv.de, la cual es rechazada por el servidor SMTP.

Entonces, ¿por qué uso este nombre de host poco amigable? Simplemente porque el servidor está destinado a reemplazar al existente, que se ha quedado pequeño para nuestra comunidad de Discourse en crecimiento. Estoy preparando y probando el nuevo servidor antes de cambiar la configuración DNS para apuntar a este nuevo servidor más adelante. Solo quería ahorrar el tiempo de crear configuraciones DNS temporales amigables aquí.

¿Cómo solucionar el problema?
Busca estas líneas al final de tu archivo app.yml:

## Si deseas establecer la dirección de correo electrónico 'De' para tu primer registro, descomenta y modifica:
## Después de recibir el primer correo de registro, vuelve a comentar la línea. Solo necesita ejecutarse una vez.

Descomenta y ajusta la última línea a una dirección que tu servidor SMTP acepte como remitente válido, por ejemplo:
- exec: rails r "SiteSetting.notification_email='USUARIO@DOMINIO.TLD'"

Ahora ejecuta ./launcher rebuild app para que los cambios surtan efecto y, ¡voilà! Ahora se envía el correo de activación y puedes activar la cuenta de administrador y finalizar la configuración.

¿Cómo lo descubrí?
Creé una nueva cuenta de correo con mi proveedor de alojamiento web y ejecuté la configuración de Discourse nuevamente con estas credenciales SMTP, y recibí el correo de activación como se esperaba. Así que supe que debía estar relacionado con la configuración SMTP (y no con otros aspectos relacionados con la configuración de Ubuntu / Docker / Discourse).
Después de activar la cuenta de administrador con este otro servidor SMTP, fui a Configuración > Correo electrónico > omitido y encontré los intentos fallidos de enviar el correo de activación: 553 5.7.1 <noreply@v220200xxxxxxxxxxxx.powersrv.de>: Dirección de remitente rechazada: no pertenece al usuario USUARIO@DOMINIO.TLD

Conclusión
Me gustaría llamar la atención del equipo de desarrollo de Discourse sobre la solicitud de característica Sugerencia: permitir una configuración opcional del campo ‘De’ del correo del sistema durante la configuración. Por favor, consideren que las instalaciones de prueba (por ejemplo, como una copia para realizar algunas pruebas antes de actualizar realmente una instancia) pueden no tener una dirección de host amigable. Sería mucho más sencillo configurarlas sin tener que editar el archivo app.yml. Además, en mi opinión, es bueno darle al administrador la opción de usar direcciones de correo electrónico que no estén vinculadas al nombre de host de Discourse.

¡Gracias! :slight_smile:

También gracias a @codinghorror por indicarme cómo publicar bloques de código.

Estoy trabajando en un cambio para discourse-setup que requerirá que configures el notification_email durante el proceso de instalación. Esto debería solucionar problemas como el tuyo de ahora en adelante.

¡Esto ya está fusionado y se preguntará en las nuevas instalaciones!