Problemas con el correo de administrador al registrarse

Bueno… llevo unas 6 horas en esto y pensé en pedir un poco de ayuda.
He configurado Discourse en un servidor, lancé el contenedor e intenté crear mi primera cuenta de administrador.
El problema: no estoy recibiendo el correo de registro.

Lo que he hecho:

  • Aseguré de que SMTP esté configurado correctamente en la configuración y usé una herramienta de prueba en línea (SMTP Test Tool) para confirmar que esos ajustes funcionan, y lo hacen. (usando ese sitio web)
  DISCOURSE_SMTP_ADDRESS: MY_SMTP_HOST
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: MY_SMTP_USERNAME
  DISCOURSE_SMTP_PASSWORD: MY_SMTP_PASSWORD
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, valor predeterminado: true)
  • Aseguré de que solo haya un correo electrónico configurado para la configuración inicial de las cuentas de administrador.

  • Verifiqué que SSL esté funcionando (¡lo está!).

  • Intenté una reinstalación limpia de Ubuntu dos veces y seguí la guía publicada en línea para la configuración.

  • Verifiqué que no haya firewalls de red bloqueando nada de entrada o salida.

  • Pude hacer telnet correctamente a mi servidor SMTP desde el servidor que aloja Discourse.

  • Tengo configurado correctamente al final del archivo app.yml el siguiente comando adicional:
    - exec: rails r "SiteSetting.notification_email='noreply@MY_WEB_SITE'"

No sé qué más probar en este punto. Gracias.

¿Si ejecutas discourse-doctor, te muestra algún error obvio?

cd /var/discourse
./discourse-doctor

Ah sí, olvidé mencionarlo. Un momento, déjame ejecutarlo de nuevo para obtener el resultado que noté.


==================== 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) [MI_CORREO]:
Enviando correo a MI_CORREO...
Probando el envío a MI_CORREO usando smtp.MI_SMTP:587.
Conexión al servidor SMTP exitosa.
Enviando a MI_CORREO...
El envío del correo falló.
Reemplazando: SMTP_PASSWORD
Reemplazando: LETSENCRYPT_ACCOUNT_EMAIL
Reemplazando: DEVELOPER_EMAILS
Reemplazando: DISCOURSE_DB_PASSWORD
Reemplazando: Enviando correo a

==================== ¡LISTO! ====================
¿Te gustaría servir una versión públicamente disponible de este archivo? (Y/n)

Noto que, por alguna razón, “El envío del correo falló”, aunque la “Conexión al servidor SMTP fue exitosa”.

Si tu contraseña contiene de alguna manera caracteres especiales, ¿has probado a encerrarla entre comillas?

Anteriormente estaba entre comillas, pero estaba siguiendo una guía en línea que no la incluía entre comillas. Lo intentaré de nuevo con comillas dobles ".

Reconstruyendo en este momento.

Bien, ya está de nuevo en línea. Un momento.

Mismo error:


==================== 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) [MI_CORREO]: MI_CORREO
Enviando correo a MI_CORREO. . .
Probando el envío a MI_CORREO usando MI_SERVIDOR_SMTP:587.
Conexión al servidor SMTP exitosa.
Enviando a MI_CORREO. . .
El envío del correo falló.
Reemplazando: CONTRASEÑA_SMTP
Reemplazando: CORREO_CUENTA_LETSENCRYPT
Reemplazando: CORREOS_DESARROLLADORES
Reemplazando: CONTRASEÑA_BD_DISCOURSE
Reemplazando: Enviando correo a

==================== ¡LISTO! ====================
¿Deseas servir una versión públicamente accesible de este archivo? (Y/n)n
Registro públicamente accesible no generado.

Puedes examinar la salida de este script con
LESS=-Ri less /tmp/discourse-debug.txt

¡PERO PRIMERO, asegúrate de conocer los primeros tres comandos a continuación!!!

Comandos para conocer al visualizar el archivo con el comando anterior (llamado 'less'):
q              -- salir
/error<ENTER>  -- buscar la palabra 'error'
n              -- buscar la siguiente aparición
g              -- ir al principio del archivo
f              -- avanzar una página
b              -- retroceder una página
G              -- ir al final del archivo

Lo intenté con una contraseña estándar sin caracteres, lo intenté con y sin comillas, pero el resultado no cambió.

Error al enviar el correo.

Te sugiero que pruebes configurando Mailgun.

Lo probaré ahora. Gracias.

Antes de intentarlo, probaré Discourse app.yml doesn't like email password contain "#" - #15 by elijah poniendo comillas dobles alrededor de la contraseña y, finalmente, estableciendo una contraseña que no use caracteres especiales.

Si eso no funciona, configuraré Mailgun (como último recurso, ya que mi servidor de correo actual tiene muchos correos electrónicos).

¡PROGRESO! Apareció un nuevo mensaje de error después de poner comillas dobles a la contraseña así "'mypass'"

==================== 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) [sender_email]: my_email
Enviando correo a my_email. . .
Probando el envío a my_email usando my_smtp:587.
======================================== ERROR ========================================
                                    ERROR INESPERADO

Se solicitó SMTP-AUTH pero falta la frase secreta

====================================== SOLUCIÓN =======================================
Este no es un error común. ¡No existe una solución recomendada!

Por favor, reporta el mensaje de error exacto de arriba en https://meta.discourse.org/
(¡Y una solución, si encuentras una!)
=======================================================================================
Reemplazando: SMTP_PASSWORD
Reemplazando: LETSENCRYPT_ACCOUNT_EMAIL
Reemplazando: DEVELOPER_EMAILS
Reemplazando: DISCOURSE_DB_PASSWORD
Reemplazando: Enviando correo a

==================== ¡LISTO! ====================
¿Te gustaría servir una versión pública de este archivo? (Y/n)

Usar manualmente telnet para enviar un correo electrónico parece funcionar, pero no al usar los correos de Discourse, por lo que algo parece estar mal.

En el production.log encontré esto, ¿podría estar causando el problema?


Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL) suscripción fallida, reconectando en 1 segundo. Pila de llamadas ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL) suscripción fallida, reconectando en 1 segundo. Pila de llamadas ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL) suscripción fallida, reconectando en 1 segundo. Pila de llamadas ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Excepción del trabajo: Error al conectar con Redis en localhost:6379 (Errno::EADDRNOTAVAIL)

Una investigación más profunda reveló Excepción del trabajo: SSL_connect returned=1 errno=0 state=error: dh key too small, así que parece que el SSL del servidor de correo está teniendo problemas. Hora de Mailgun.