La última versión de Discourse no envía correos electrónicos

Parece que tengo un problema con Discourse enviando correos electrónicos a través de SMTP.

He verificado mi nombre de host con mi Proveedor de Servicios de Correo Electrónico y he enviado correos electrónicos con éxito con Telnet y a través de sendmail desde la VM host, así como a través de Telnet dentro del contenedor Docker de Discourse.

Eché un vistazo a la integración de ‘sendmail’ dentro del contenedor Docker y recibí un error de ‘no se pudo resolver el nombre de host’ al enviar correos electrónicos directamente desde la CLI.

Para mí, esto significa que no hay problemas con la comunicación entre la VM y el proveedor del servicio SMTP.

He probado todos los puertos SMTP habituales y creo que la configuración en el archivo app.yml es correcta. La VM es Linux 20.04, también se han utilizado 24.04 y 22.04 en las pruebas.

El cifrado es con un certificado Let’s Encrypt.

  DISCOURSE_SMTP_ADDRESS: <smtp_provider>
  DISCOURSE_SMTP_PORT:  <port>
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_USER_NAME: apikey
  DISCOURSE_SMTP_PASSWORD: "<secret>"
  DISCOURSE_SMTP_ENABLE_START_TLS: true

Cada vez que envío a través del formulario de Discourse, sigo recibiendo un mensaje de “ejecución expirada”.

1 me gusta

Comprueba los límites de tu proveedor de servicios de correo electrónico. A veces, el envío falla cuando se alcanza la cuota. Intenta enviar un correo electrónico desde Outlook. Me pasó una vez. Tu problema puede ser diferente, pero aún así puede ser útil para alguien.

1 me gusta

Si recibes “no se pudo resolver el nombre de host”, parece que el nombre de host no se puede resolver, lo cual es un problema.

¿Funciona rake emails:test[you@somewhere.com]? Consulta también Solución de problemas de correo electrónico en una nueva instalación de Discourse

2 Me gusta

Gracias por las respuestas. He estado revisando durante el fin de semana. Creé una VM en Digital Ocean y configuré SMTP con Brevo. Todo estuvo bien. :slight_smile:

Así que no hay nada malo con Discourse.

Me imagino que Discourse utiliza un GEM de Ruby como NET::smtp para enviar correos y que, por defecto, no hay un servidor smtp instalado dentro del contenedor. El problema que enfrentamos está en un tenant de Azure.

Me parece que la solicitud al servicio SMTP externo, es decir, está siendo bloqueada en algún lugar. Por algún tipo de mecanismo anti-SPAM que se encuentra encima del tenant.

Tengo algunas pruebas más que realizar para acotar esto.

Cualquier información sobre cómo Discourse facilita el envío de correos sería genial :slight_smile: Soy un poco nuevo en Ruby on the Rails.

1 me gusta

¿Pero configuraste SMTP de la misma manera que lo hiciste en la instancia de Digital Ocean?

¿Qué sucede cuando ejecutas la tarea de rake?

Igual: sin conexión.

Estoy usando diferentes retransmisores SMTP en cada instancia.

Hay un par de pruebas que estoy ejecutando para validar:

  • Instalar discourse a través de docker-compose localmente
  • Instalar Discourse en un inquilino de Azure diferente bajo una suscripción diferente
  • Validar los retransmisores SMTP de Brevo y SendGrid

Actualizaré la publicación después de estas pruebas…

Sin conexión es sin conexión. Está bastante claro que te están bloqueando el acceso con un firewall.

¿Quizás probar el puerto 2525? O preguntar si tu proveedor (por ejemplo, digital ocean) está bloqueando el puerto que deseas.

@pfaffman Gracias por dedicar tiempo a esto. Al final, el problema estaba relacionado con el DNS.

Todo funciona correctamente ahora :grinning:

1 me gusta

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