Problema al enviar el correo de activación

He instalado Discourse usando la instalación de aplicación de un clic en DigitalOcean con soporte HTTPS de LetsEncrypt. No estoy recibiendo el correo de activación en mi cuenta de correo de administrador. Cuando ejecuto ./discourse-doctor, en el paso de envío de correo obtengo el siguiente error:

Net::ReadTimeout

Estoy alojando Discourse en un subdominio, mientras que mi sitio principal (dominio principal) y el servidor de correo están en Hostgator. Los registros SPF y DKIM están activos en mi dominio principal. He configurado el envío de correo de Discourse para el puerto 465, que es lo que soportan los servidores de correo de Hostgator.

¿Podría alguien aclarar qué podría estar fallando?

Gracias de antemano.

Edición: Cuando intento el puerto 587, ./discourse-doctor muestra un error diferente, que se indica a continuación:

El envío de correo falló.

Actualización: Logré que el correo de activación funcionara usando el puerto 587 y el siguiente valor en el archivo app.yaml:

DISCOURSE_SMTP_ENABLE_START_TLS: false

Una vez que inicié sesión en la interfaz de administración, pude ver los siguientes errores de Sidekiq (¿de antes?):

Jobs::HandledExceptionWrapper: Wrapped OpenSSL::SSL::SSLError: el nombre de host “mail.mydomain.com” no coincide con el certificado del servidor

Ahora, entiendo que este error desapareció porque establecí DISCOURSE_SMTP_ENABLE_START_TLS en false, pero ¿es esta la forma correcta de hacerlo?

Hola y bienvenido a meta @nparab :wave:

Me temo que no podemos respaldar la instalación de un solo clic ofrecida por DigitalOcean, ya que no es la forma oficialmente recomendada para configurar Discourse. Te recomiendo encarecidamente que sigas nuestra guía oficial de instalación.

Ese mensaje es autoexplicativo y significa que tu servidor de correo está mal configurado.

Pero si me conecto mediante este comando:

openssl s_client -starttls smtp -crlf -connect mail.mydomain.com:587

la conexión se establece correctamente e incluso puedo enviar correos. Si el servidor de correo estuviera mal configurado, este comando tampoco debería funcionar, ¿verdad?

Actualización: Al ejecutar este comando:

openssl s_client -servername mail.mydomain.com -starttls smtp -crlf -connect mail.mydomain.com:587

devuelve un certificado para mydomain.com en lugar del certificado para mail.mydomain.com.

¿Es esta la mala configuración de la que hablabas?

Por ahora, he configurado Discourse para que use mydomain.com (en lugar de mail.mydomain.com) como DISCOURSE_SMTP_ADDRESS en el archivo app.yml, de modo que los certificados coincidan. ¿Esto causará algún problema?