Nueva instalación de Discourse/Docker no envía correos

Hola gente,
Quiero cambiar un foro de larga data de phpBB3 a Discourse. Logré configurar Docker y puedo acceder a la Configuración Inicial. Desafortunadamente, no se envía ningún correo electrónico, por lo que no puedo terminar la configuración.
Hice algo de depuración y no pude encontrar la razón, así que recurro a ustedes para pedir ayuda.

Mi configuración es la siguiente: configuré apache2 como proxy inverso para el docker, lo cual funciona. Mi servidor de correo es un docker de mailcow en la misma máquina. El servidor de correo se prueba exhaustivamente y funciona bien a diario a través de SMTP con STARTTLS en el puerto 587 y webmail.

La configuración en mi app.yml se ve así:

  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: discourse@example.com
  DISCOURSE_SMTP_PASSWORD: "password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opcional, por defecto true)
  #DISCOURSE_SMTP_DOMAIN: mail.example.com
  DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com

cuando ejecuto ./discourse-doctor, obtengo:

==================== PRUEBA DE CORREO ====================
Para una prueba robusta, obtén una dirección de http://www.mail-tester.com/
O simplemente envíate un mensaje de prueba a ti mismo.
¿Dirección de correo electrónico para la prueba de correo? ('n' para omitir) [admin@example.com]:
Enviando correo a admin@example.com. . .
Probando el envío a admin@example.com usando mail.example.com:587, nombre de usuario: discourse@example.com con autenticación simple.
=======================================
ERROR
=======================================
ERROR INESPERADO

No se puede asignar la dirección solicitada - connect(2) para [ipv6 correcta]:587

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

Por favor, informa el mensaje de error exacto arriba a https://meta.discourse.org/
(¡Y una solución, si encuentras alguna!)

Al no poder encontrar personas con mensajes de error similares en la web, recurrí a este hilo
Pude conectarme fácilmente al servidor de correo con telnet desde fuera del contenedor.

Lo que intenté dentro del contenedor:

getent hosts mail.example.com

proporcionó la dirección IPv6 correcta
Pero luego comenzaron a aparecer los errores:

openssl s_client -connect mail.example.com:587 -starttls smtp
140124593714496:error:0200206E:system library:connect:Connection timed out:../crypto/bio/b_sock2.c:110:
140124593714496:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=110
openssl s_client -6 -connect "[ipv6 correcta]:587" -starttls smtp
139918557709632:error:02002063:system library:connect:Cannot assign requested address:../crypto/bio/b_sock2.c:110:
139918557709632:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=99
 openssl s_client -connect smtp.gmail.com:587 -starttls smtp

funciona perfectamente
Cuando intento el

openssl s_client -connect mail.example.com:587 -starttls smtp

desde fuera del contenedor, también funciona bien.
Mis registros de mailcow/postfix no muestran nada…
Estoy desconcertado. ¿Pueden ayudarme a ver dónde buscar a continuación?

1 me gusta

Ver Solución de problemas de correo electrónico en una nueva instalación de Discourse.

El problema probablemente sea que tu dirección de correo electrónico de notificación no es una desde la que tu servidor de correo esté configurado para enviar.

Pero eso no explica los errores de “tiempo de espera agotado de la conexión”. Eso suena a algún problema de red de Docker.

1 me gusta

Gracias por tu respuesta. Intenté usar la misma dirección en ambos campos, sin cambios, el mismo error.
Siguiendo el hilo de Solución de problemas:

¿Qué dicen los registros de Discourse?

`Job exception: Cannot assign requested address - connect(2) for [IPv6 correcto]:587

¿Qué dicen los registros de tu proveedor de correo electrónico?

No aparecen entradas de registro relacionadas con correos enviados desde Discourse.

Luego intenté este Método https://www.saotn.org/test-smtp-authentication-starttls/ para ver si podría autenticarme a través de openssl, y funciona bien desde el servidor, pero no desde dentro del contenedor, produce el error que describí en la primera publicación.

¿Cómo puedo averiguar qué está bloqueando la conexión aquí?

1 me gusta

omfg fue tan fácil.
Solo tuve que activar IPv6 en mi red Docker, solo los tres primeros pasos de este tutorial y funcionó.

3 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.