SMTP pour groupe : erreur de numéro de version SSL incorrect

Bonjour,

J’essaie d’implémenter le SMTP pour les groupes mais je reçois constamment le message d’erreur suivant.

image

Pourtant, j’utilise le même serveur smtp que celui utilisé par l’instance et je reçois le même message d’erreur même si j’utilise les mêmes identifiants spécifiés dans mon fichier app.yml… Je ne comprends pas pourquoi il se comporte différemment : les e-mails sont envoyés parfaitement avec les identifiants par défaut.

Dans les logs de mon serveur SMTP, je vois une connexion provenant du serveur Discourse, puis j’ai le message suivant :

smtp bad-input result=“500 5.5.1 Invalid command: Pipelining not supported”
smtp disconnected reason=“io-error: Connection reset by peer”

1 « J'aime »

Je suspecte que Discourse tente de se connecter au serveur SMTP avec TLS au lieu de STARTTLS.

Pouvez-vous faire une capture d’écran des paramètres pertinents ?

Veuillez masquer les noms d’hôtes et les noms d’utilisateur spécifiques, mais laissez les informations de port et les autres paramètres.

1 « J'aime »

La configuration est assez classique : port 587 habituel et starttls est vrai (valeur par défaut)

configuration générale :

pour le groupe smtp :

J’ai fait du tcpdump pour voir ce qui se passe et je remarque 3 comportements différents. Pour les deux premiers cas, c’est exactement comme décrit dans ce fil de discussion : https://meta.discourse.org/t/smtp-error-must-issue-a-starttls-command-first/181050/6?u=gde.

  1. Utilisation normale

Les utilisateurs créent des sujets, répondent, etc. les autres utilisateurs reçoivent les notifications par e-mail comme prévu
De plus, en utilisant le test d’envoi d’e-mail via l’interface d’administration : aucun problème, il est bien envoyé et bien reçu

avec tcpdump, on peut voir qu’il y a une séquence correcte, se connectant via STARTTLS, etc.

  1. Discourse-doctor et rake

en utilisant discourse-doctor ou rake emails:test
L’e-mail n’est pas envoyé et j’ai une erreur : 503 5.5.1 Invalid command: Command not supported

  1. groupe smtp

Lors du test du smtp de groupe, je vois un paquet “DATA fragment” venant de Discourse immédiatement après le handshake tcp, auquel le serveur smtp répond avec 220 xxxxxxx ESMTP OpenSMTPD suivi d’un message 500 5.5.1 Invalid command: Pipelining not supported

1 « J'aime »

587 prendra en charge STARTTLS mais pas TLS (au moment de la connexion).

Nous devrions modifier les options ici pour autoriser STARTTLS.

Si vous désélectionnez « Utiliser SSL pour SMTP », cela fonctionne-t-il ?

Malheureusement, non, cela ne fonctionne pas.
la désactivation de « Utiliser SSL pour SMTP » me donne le message d’erreur suivant :

image

Ce qui est étrange car je connais mes identifiants.

En regardant avec tcpdump, cela se comporte comme je l’ai expliqué pour le cas « Discourse-doctor et rake ».
Les échanges entre Discourse et le serveur smtp ressemblent à ce qui suit

< 220 [redacted] ESMTP ready
> EHLO [redacted]
< 250-[redacted]
< 250-PIPELINING
< 250-SIZE 36700160
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command : commande non supportée

C’est comme si Discourse n’essayait pas d’initier STARTTLS ; C’est exactement comme décrit dans le post auquel j’ai lié dans mon post précédent.

J’ai maintenant le même problème lorsque j’essaie de configurer Discourse SMTP pour fonctionner avec une adresse e-mail ImprovMX.

Des idées @supermathie ?