En el texto a continuación, reemplaza \<DOT\> con . ya que soy un nuevo usuario y Discourse no me permite publicar enlaces.
Instalé Discourse en un servidor recién creado de Hetzner Cloud y la URL se resuelve correctamente: forum.thewizardofosc.com
Sin embargo, el correo electrónico con el que me registré nunca se envía. En el archivo de registro, el mensaje de Discourse es Net::ReadTimeout, si eso dice algo.
telnet se conecta: al escribir "telnet mail.thewizardofosc.com 465" obtengo "Connected to thewizardofosc.com".
¡Además, Curl envía un correo electrónico con éxito!
A continuación están las secciones que supongo son las relevantes de mi archivo de configuración de la aplicación:
## en el ejemplo de registro inicial 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'iliasb@thewizardofosc.com'
## TODO: El servidor de correo SMTP utilizado para validar nuevas cuentas y enviar notificaciones
# Se requieren la dirección SMTP, el nombre de usuario y la contraseña
# ¡ADVERTENCIA: el carácter '#' en la contraseña SMTP puede causar problemas!
DISCOURSE_SMTP_ADDRESS: mail.thewizardofosc.com
DISCOURSE_SMTP_PORT: 465
DISCOURSE_SMTP_USER_NAME: discourse@thewizardofosc.com
DISCOURSE_SMTP_PASSWORD: <CONTRASEÑA>
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, por defecto true)
## Si agregaste la plantilla de Lets Encrypt, descomenta lo siguiente para obtener un certificado SSL gratuito
LETSENCRYPT_ACCOUNT_EMAIL: me@example.com
Estranho. Si puedes conectarte desde fuera del contenedor, puedes comprobar si ese comando curl funciona dentro del contenedor. Mi única suposición es que tienes algún problema de red con Docker.
Sí, era un intento arriesgado… ¡perdona por hacerte perder el tiempo con eso!
Mi única otra «idea loca» en este momento es ver si puedes acceder a tu servidor de correo (sea quien sea el proveedor) y configurar el puerto en 587 (muchos proveedores SMTP ofrecen esa opción) y «tirar los dados de nuevo» con DISCOURSE_SMTP_ENABLE_START_TLS: true, por supuesto.
Francamente, normalmente no soy de «tirar los dados» y prefiero basarme en hechos; así que si no quieres intentarlo, lo entiendo perfectamente @onar3d !!
Entendido. En este momento se me han acabado las “ideas locas” y es hora de que me prepare para descansar esta noche; mucha suerte y espero que alguno de los miembros inteligentes del equipo aquí tenga algunas ideas mejores para probar.
Después de algunos intentos más (¡muchas gracias, @IAmGav!), se confirmó que mi configuración de Discourse funciona con un servidor de correo diferente, lo que descarta varias opciones a probar.
Mi proveedor de servidor de correo me respondió con un mensaje de registro de error de su parte y una sugerencia:
El ingeniero ha revisado los registros y el error observado desde su IP está relacionado con la configuración de SSL. Lo más probable es que estén utilizando una versión antigua o configuraciones de conexión obsoletas.
Prueba:
Error de TLS en la conexión desde [95.216.139.49]:33568 SSL_accept: conexión TCP cerrada por el par.
Prueba con el modo SSL desactivado solo para ver si funciona.
Lo intenté con DISCOURSE_SMTP_ENABLE_START_TLS establecido en false, como se indicó anteriormente, tanto en el puerto 465 como en el 26 (listado por mi proveedor como el puerto para conexiones sin SSL), pero ninguno funcionó.
¿Podría ser porque no he comprado un certificado SSL para el dominio thewizardofosc.com? Me doy cuenta de esto ahora después de investigar un poco más.
Si no funciona con la opción sin SSL, tampoco funcionaría con un SSL de pago. Tu proveedor de correo electrónico debería proporcionarte un SSL gratuito de Let’s Encrypt.
Podrías considerar ejecutar tus pruebas de curl con la opción de verbosidad -v activada, por lo que se me ocurre, para que puedas analizar completamente el handshake exitoso; y luego trabajar hacia atrás a partir de ese análisis.