Problemas del servidor SMTP de Outlook (SMTPSyntaxError)

Hola a todos:

He estado trabajando e intentando configurar una instancia autoalojada de Discourse en un servidor CentOS. En general, parece que todo va bien, ya que he configurado el nombre de host y otras cosas, y el contenedor de Docker se inicia y puedo acceder a mi instancia de Discourse dentro de mi red local en http://discourse.foo.co.

Sin embargo, aquí es donde estoy un poco atascado, ya que no puedo crear mi primer usuario porque la configuración SMTP que estoy utilizando parece no funcionar y constantemente arroja un Net::SMTPSyntaxError, sin importar lo que intente.

Mi configuración SMTP en app.yml es:

## TODO: Lista de correos electrónicos separados por comas que se convertirán en administradores y desarrolladores
  ## en el registro inicial, por ejemplo, 'usuario1@ejemplo.com,usuario2@ejemplo.com'
  DISCOURSE_DEVELOPER_EMAILS: 'brian@foo.co'

  ## 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: foo.mail.protection.outlook.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user@foo.co
  DISCOURSE_SMTP_PASSWORD: una contraseña que contiene algunos caracteres especiales '@' y '/'. La contraseña no contiene el carácter especial '#'.
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true         # (opcional, por defecto true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (requerido por algunos proveedores)
  DISCOURSE_NOTIFICATION_EMAIL: 'community@foo.co'    # (dirección desde la que se enviarán las notificaciones)

He buscado en todos los foros de Discourse, pero al buscar ‘SMTPSyntaxError’ no obtengo ningún resultado. En Google, tampoco parece que encuentre soluciones que me ayuden.

La misma configuración SMTP, cuando se introduce en nuestros servidores Bamboo y Jira, funciona perfectamente y puede enviar correos electrónicos sin problemas.

También he utilizado herramientas de prueba en línea como https://dnschecker.org/smtp-test-tool.php y puede enviar correos electrónicos de prueba perfectamente. Por ejemplo, al introducir los mismos detalles que se muestran arriba, se envía un correo electrónico de prueba con el siguiente contenido con éxito a mi bandeja de entrada.

Servidor SMTP: foo.mail.protection.outlook.com.
Puerto: 25
Usar cifrado TLS explícito: No
Usar cifrado TLS/SSL implícito:
Usar autenticación: No
Correo electrónico desde: test@foo.co
Correo electrónico a: brian@foo.co

Cualquier ayuda sería apreciada, gracias,
Brian

Te aconsejaría volcar el tráfico que va desde tu contenedor al servidor SMTP para que puedas ver exactamente lo que está sucediendo en la red.

Puedes activar un correo electrónico ejecutando dentro del contenedor:

rake 'emails:test[tu.direccion.de.correo@tu.dominio]'

y deberías ver, por ejemplo:

root@michael-discourse-docker-app:/var/www/discourse# rake 'emails:test[michael@contoso.com]'
Testing sending to michael@contoso.com using mail.contoso.net:587, username:michael with plain auth.
SMTP server connection successful.
Sending to michael@contoso.com. . .
Mail accepted by SMTP server.
Message-ID: e7adb5c4-f404-4800-b070-631b06ff5335@mx1.contoso.com

Lo que también podría darte algunas pistas.

3 Me gusta

Hola Michael,

Gracias por tu sugerencia, pero parece que da el mismo error que da cuando uso ./discourse-doctor.

root@discourse-app:/var/www/discourse# rake 'emails:test[brian.lui@foo.co]'
Testing sending to brian.lui@foo.co using foo.mail.protection.outlook.com:25, username:user@foo.co with login auth.
======================================== ERROR ========================================
                                    UNEXPECTED ERROR

Net::SMTPSyntaxError

====================================== SOLUTION =======================================
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!)
=======================================================================================

Brian

Cuando ejecuto el comando dentro del contenedor (como vi en la guía de solución de problemas de Discourse SMTP):

openssl s_client -connect foo.mail.protection.outlook.com:25 -starttls smtp

Todo parece normal, pero en lugar de un 250 DSN, veo un 250 SMTPUTF8. Luego, cuando intento ingresar el comando EHLO "i am here", no sucede nada y finalmente se agota el tiempo de espera:

451 4.7.0 Timeout waiting for client input [YT1PEPF00001E8C.CANPRD01.PROD.OUTLOOK.COM 2024-02-23T17:51:16.770Z 08DC342D15BDD245]\nread:errno=0

Obtengo el mismo resultado.

No tengo ninguna sugerencia más que esta parece ser un problema con el servidor de correo en sí en lugar de Discourse.

No esperaría que este servidor se utilizara para la envío de correo. ¿Está seguro de que esto es correcto?

Veo que otras personas han utilizado un servidor de envío diferente y lo han hecho funcionar:

2 Me gusta