Problèmes de serveur SMTP Outlook (SMTPSyntaxError)

Bonjour à tous !

J’ai travaillé et essayé de mettre en place une instance auto-hébergée de Discourse sur un serveur CentOS. Pour la plupart, les choses semblent bien se passer, car j’ai configuré le nom d’hôte et d’autres éléments, et le conteneur Docker démarre et je peux accéder à mon instance Discourse sur mon réseau local à l’adresse http://discourse.foo.co.

Cependant, c’est là que je suis un peu bloqué, car je ne parviens pas à créer mon premier utilisateur car les paramètres SMTP que j’utilise semblent ne pas fonctionner et génèrent constamment une erreur Net::SMTPSyntaxError, peu importe ce que j’essaie.

Mes paramètres SMTP dans app.yml sont :

## TODO: Liste des e-mails séparés par des virgules qui seront administrateurs et développeurs
  ## lors de la première inscription, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'brian@foo.co'

  ## TODO: Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  # L'adresse, le nom d'utilisateur et le mot de passe SMTP sont requis
  # ATTENTION, le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
  DISCOURSE_SMTP_ADDRESS: foo.mail.protection.outlook.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: user@foo.co
  DISCOURSE_SMTP_PASSWORD: un mot de passe contenant des caractères spéciaux '@' et '/'. Le mot de passe ne contient pas le caractère spécial '#'.
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true         # (optionnel, par défaut true)
  #DISCOURSE_SMTP_DOMAIN: discourse.example.com    # (requis par certains fournisseurs)
  DISCOURSE_NOTIFICATION_EMAIL: 'community@foo.co'    # (adresse d'envoi des notifications)

J’ai cherché partout sur les forums Discourse, mais la recherche de ‘SMTPSyntaxError’ ne donne aucun résultat pour moi. Sur Google, je n’arrive pas à trouver de solutions qui m’aident non plus.

Les mêmes paramètres SMTP, lorsqu’ils sont entrés dans nos serveurs Bamboo et Jira, fonctionnent parfaitement et parviennent à envoyer des e-mails sans problème.

J’ai également utilisé des outils de test en ligne tels que https://dnschecker.org/smtp-test-tool.php et il est capable d’envoyer des e-mails de test parfaitement. Par exemple, en entrant les mêmes détails que ceux indiqués ci-dessus, un e-mail de test avec le contenu suivant est envoyé avec succès à ma boîte de réception.

Hôte SMTP : foo.mail.protection.outlook.com.
Port : 25
Utiliser le chiffrement TLS explicite : Non
Utiliser le chiffrement TLS/SSL implicite :
Utiliser l'authentification : Non
E-mail de : test@foo.co
E-mail à : brian@foo.co

Toute aide serait appréciée, merci,
Brian

Je vous conseillerais de vider le trafic allant de votre conteneur au serveur SMTP afin de voir exactement ce qui se passe sur le réseau.

Vous pouvez déclencher un e-mail en exécutant à l’intérieur du conteneur :

rake 'emails:test[your.email.address@your.domain]'

et vous devriez voir par exemple :

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

Ce qui pourrait également vous donner quelques indices.

3 « J'aime »

Salut Michael,

Merci pour ta suggestion, mais elle semble donner la même erreur que lorsque j’utilise ./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 =======================================
Ce n'est pas une erreur courante. Aucune solution recommandée n'existe !

Veuillez signaler le message d'erreur exact ci-dessus à https://meta.discourse.org/
(Et une solution, si vous en trouvez une !)
=======================================================================================

Brian

Lorsque j’exécute la commande à l’intérieur du conteneur (comme je l’ai vu dans le guide de dépannage SMTP de Discourse) :

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

Tout semble normal, mais au lieu d’un 250 DSN, je vois un 250 SMTPUTF8. Ensuite, lorsque j’essaie d’entrer la commande EHLO "i am here", rien ne se passe et je finis par avoir un délai d’attente :

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

J’obtiens le même résultat.

Je n’ai pas vraiment de suggestions, à part que cela semble être un problème avec le serveur de messagerie lui-même plutôt qu’avec Discourse.

Je ne m’attendrais pas à ce que ce serveur soit utilisé pour la soumission de courrier. Êtes-vous sûr que c’est correct ?

Je vois que d’autres personnes ont utilisé un serveur de soumission différent et ont réussi :

2 « J'aime »