Je rencontre un problème similaire. Hier, j’ai passé environ trois heures à déboguer l’envoi d’e-mails sur une nouvelle instance Discourse, sans succès. J’essaie d’envoyer des e-mails via Fastmail avec STARTTLS sur le port 587. D’autres services fonctionnent avec les mêmes identifiants.
Je n’obtiens pas l’erreur « Must issue a STARTTLS command first » avec ces paramètres :
DISCOURSE_SMTP_ADDRESS: 'smtp.fastmail.com'
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: 'myuser@fastmail.fm'
DISCOURSE_SMTP_PASSWORD: 'mypass'
DISCOURSE_SMTP_ENABLE_START_TLS: true
…suivi d’un ./launcher rebuild app, lorsque j’exécute ./discourse-doctor et que j’envoie un e-mail, je reçois une erreur 500 5.5.1 Invalid command en réponse.
Aujourd’hui, j’ai commencé à tracer la communication avec tcpdump, et j’ai remarqué que Discourse ne semble pas utiliser STARTTLS. Voici ce qui se passe lorsque j’envoie un e-mail de récupération Grafana :
< 220 smtp.fastmail.com ESMTP ready
> EHLO 9b5ba1569f77
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> STARTTLS
< ...[encrypted]
Mais avec Discourse, voici ce qui se passe :
< 220 smtp.fastmail.com ESMTP ready
> EHLO localhost
< 250-smtp.fastmail.com
< 250-PIPELINING
< 250-SIZE 71000000
< 250-ENHANCEDSTATUSCODES
< 250-8BITMIME
< 250 STARTTLS
> AUTH PLAIN [redacted]
< 500 5.5.1 Invalid command
Il semble donc que Discourse envoie mes identifiants en clair sur Internet, même si STARTTLS est activé dans les paramètres ? Est-ce un bug ?
J’ai également remarqué que lorsque j’exécute ./discourse-doctor, le résumé « YML SETTINGS » en haut affiche les éléments suivants :
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=forum.[redacted]
SMTP_ADDRESS=smtp.fastmail.com
DEVELOPER_EMAILS=sysadmin@[redacted]
SMTP_PASSWORD=[redacted]
SMTP_PORT=587
SMTP_USER_NAME=[redacted]@fastmail.fm
LETSENCRYPT_ACCOUNT_EMAIL=
Cependant, il n’y a aucune mention de DISCOURSE_SMTP_ENABLE_START_TLS, même s’il est défini dans app.yml. Je ne suis pas sûr si ce problème est lié.