Mi droplet de Discourse en DigitalOcean no puede enviar correos. El error que obtengo es:
Correo entregado d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099.4ms)
Excepción del trabajo: 504 5.7.4 Tipo de autenticación no reconocido [BL0PR0102CA0036.prod.exchangelabs.com]
Mis configuraciones son:
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: foo@bar.com
DISCOURSE_SMTP_PASSWORD: "mypassword"
DISCOURSE_SMTP_ENABLE_START_TLS: true # (opcional, valor por defecto true)
He probado telnet desde el droplet y no arroja errores: telnet smtp.office365.com 587
¿Qué podría ser el problema? He probado la combinación de configuraciones SMTP localmente desde Python y funciona, así que asumo que ese no es el problema.
FALLÓ
--------------------
Pups::ExecError: rails r "SiteSetting.notification_email='foo@bar.com'" falló con el estado #<Process::Status: pid 2229 salida 2>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros "rails r \"SiteSetting.notification_email='foo@bar.com'\""
9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae
** NO SE LOGRÓ INICIALIZAR ** por favor, desplázate hacia arriba y busca mensajes de error anteriores; puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
Puedes probar esto para intentar encontrar la configuración correcta y quizás obtener algún mensaje de error:
docker exec -t -i id_de_tu_contenedor /bin/bash
Luego, dentro del contenedor:
apt install s-nail
echo "Este es el cuerpo del mensaje y contiene el contenido" | s-nail -r "foo@bar.com" -s mi_asunto -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore tuemail@ejemplo.com
Puedes cambiar los diferentes valores (por ejemplo: smtp-auth=login) para intentar encontrar el correcto. Y quizás obtendrás un mensaje de error más preciso.
echo "Este es el cuerpo del mensaje y contiene el mensaje" | s-nail -r "foo@bar.com" -s mysubject -S "smtp=smtp.office365.com:587" -S smtp-use-starttls -S smtp-auth=login -S smtp-auth-user="foo@bar.com" -S smtp-auth-password="xxxxxxxx" -S ssl-verify=ignore youremail@example.com
¡Funcionó y recibí el correo! Sin embargo, tuve que cambiar smtp-auth-password="xxxxxxxx" a comillas simples, ya que mi contraseña comienza con un ‘!’.
La única diferencia que puedo ver con respecto a mi configuración es esta bandera:
-S ssl-verify=ignore
¿Tengo que agregarla también?
¡Gracias por tu ayuda!
Yo también tengo este problema. También creé un droplet con Discourse en Digital Ocean. Después de probar todas estas sugerencias y reconstruir cada vez (sudo ./launcher rebuild app), usé el comando “sudo ./discourse-doctor”.
504 5.7.4 Tipo de autenticación no reconocido [BL0PR01CA0015.prod.exchangelabs.com]
Para mí, s-nail desde dentro del contenedor también funcionó sin problemas. Y lo probé sin la cláusula “-S ssl-verify=ignore”, y funcionó bien. ¿Alguien puede verificar que lo que se instala en el droplet de Digital Ocean envíe correos electrónicos correctamente?
Consulta con tus administradores de correo cuáles son los valores válidos de smtp_authentication y establece DISCOURSE_SMTP_AUTHENTICATION en uno que funcione.