Impossible de définir DISCOURSE_SMTP_AUTHENTICATION : login

Bonjour, je rencontre un problème lors de l’envoi d’e-mails. J’utilise Mailjet et je reçois l’erreur suivante :

Connection reset by peer

Je tente donc maintenant de définir DISCOURSE_SMTP_AUTHENTICATION: login dans app.yml. Peut-être que cela résoudra le problème.

J’ai ensuite exécuté ./launcher restart app, mais lorsque j’exécute à nouveau discourse-doctor, il indique à nouveau with plain auth.

Relance, j’ai oublié d’ajouter la catégorie de support.

Vous devez détruire puis démarrer.

Merci, cela a fonctionné, mais il semble que j’aie corrigé la mauvaise chose : le message « Job exception: Connection Reset by peer » apparaît toujours.

Je ne sais pas du tout où chercher pour résoudre ce problème. J’utilise DigitalOcean et j’envoie sur le port 587. J’ai rétabli l’authentification simple car apparemment c’est obligatoire chez Mailjet. Le TLS est facultatif selon eux, mais j’ai essayé avec et sans TLS, sans succès. Je ne sais vraiment plus quoi modifier : j’ai testé avec des guillemets doubles autour du mot de passe et sans. J’ai également vérifié deux fois le nom d’utilisateur et le mot de passe.

DISCOURSE_DEVELOPER_EMAILS: 'user@email.com'

  ## TODO: Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  # L'adresse SMTP, le nom d'utilisateur et le mot de passe sont obligatoires
  # ATTENTION : le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
  DISCOURSE_SMTP_ADDRESS: in-v3.mailjet.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: uname
  DISCOURSE_SMTP_PASSWORD: pwd
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_SMTP_DOMAIN: radstarter.io
  DISCOURSE_NOTIFICATION_EMAIL: noreply@radstarter.io
  ## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
  LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

Toute aide serait appréciée.

Vous pouvez vérifier si telnet in-v3.mailjet.com 587 se connecte ou expire. Si cela expire, cela signifie que le port sortant est bloqué. Vous devrez alors utiliser un autre port (le 2525 pourrait fonctionner pour Mailjet, mais je ne suis pas certain) ou demander à Digital Ocean de débloquer le port.

Je peux me connecter en telnet, mais la connexion se ferme immédiatement.

~# telnet in-v3.mailjet.com 587
Tentative de connexion à 104.199.96.85...
Connecté à in.mailjet.com.
Le caractère d'échappement est '^]'.
Connexion fermée par l'hôte distant.

Si un pare-feu est impliqué, cette ligne de connexion peut être trompeuse. Il se peut simplement qu’il signale une connexion réussie à un élément lors de la tentative de ce domaine (in-v3. est un alias de in.), mais cet élément est le pare-feu qui ferme ensuite la connexion.

Une autre commande que vous pouvez essayer est telnet smtp-relay.gmail.com 587. Si cela échoue de la même manière, il est probable que le port soit bloqué sur votre serveur Digital Ocean. Cela peut être dû à un pare-feu situé en dehors de votre serveur ou à un logiciel pare-feu exécuté sur votre serveur.

Pour le premier cas, vous pourrez peut-être le contrôler depuis le panneau de configuration de votre compte ou vous devrez peut-être les contacter. Pour le second, il s’agit probablement d’iptables. Vous pouvez utiliser la commande suivante pour vérifier s’il s’agit bien de cela et lister les règles applicables aux connexions sortantes.

iptables -S OUTPUT

Cela devrait donc être correct.

S’il est bloqué, c’est presque certainement au niveau du réseau, en dehors du système d’exploitation de la droplet. (Sauf s’il a configuré un pare-feu pour se bloquer sans le savoir.)

Il y a plusieurs sujets sur Mailjet. Les as-tu consultés ?

iptables -S OUTPUT

-P OUTPUT ACCEPT
-A OUTPUT -j ufw-before-logging-output
-A OUTPUT -j ufw-before-output
-A OUTPUT -j ufw-after-output
-A OUTPUT -j ufw-after-logging-output
-A OUTPUT -j ufw-reject-output
-A OUTPUT -j ufw-track-output

Gmail SMTP fonctionne parfaitement.

Oui, j’ai consulté de nombreux sujets Mailjet, aucun ne pose problème pour ma solution.

J’ai utilisé l’installation en un clic, c’est probablement la raison de l’échec. Je vais supprimer le droplet et procéder à une installation propre.

EDIT : Ça fonctionne. Notez : n’utilisez jamais un installateur en un clic.