L'envoi d'e-mails ne fonctionne pas

Mon droplet Discourse DigitalOcean ne peut pas envoyer d’e-mails. Voici l’erreur que je reçois :

E-mail livré : d8f9bf03-a3ce-4b42-8226-fc4f40a9c724@foo.barbar.com (5099,4 ms)

Exception de tâche : 504 5.7.4 Type d'authentification non reconnu [BL0PR0102CA0036.prod.exchangelabs.com]

Mes paramètres sont les suivants :

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: foo@bar.com
  DISCOURSE_SMTP_PASSWORD: "monmotdepasse"
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optionnel, par défaut true)

J’ai essayé telnet depuis le droplet et cela ne renvoie aucune erreur :
telnet smtp.office365.com 587

Quel pourrait être le problème ? J’ai testé la combinaison de paramètres SMTP localement depuis Python et cela fonctionne, donc je suppose que ce n’est pas le problème.

Bonjour,
Essayez d’ajouter :

  DISCOURSE_SMTP_AUTHENTICATION: login

Et à la fin du fichier app.yml :

 - exec: rails r "SiteSetting.notification_email='foo@bar.com'"
1 « J'aime »

Bonjour mik
L’exécution de la commande exec échoue :

ÉCHEC

--------------------

Pups::ExecError : l'exécution de "rails r \"SiteSetting.notification_email='foo@bar.com'\"" a échoué avec le statut de retour #<Process::Status: pid 2229 exit 2>

Emplacement de l'échec : /pups/lib/pups/exec_command.rb:112:in `spawn'

exec a échoué avec les paramètres "rails r \"SiteSetting.notification_email='foo@bar.com'\""

9628e31c775b74ad0f3a555b6af27701aa40b1f8b86419fa44a7c389cc5e34ae

** ÉCHEC DU BOOTSTRAP ** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plusieurs.

./discourse-doctor peut aider à diagnostiquer le problème.

Mise à jour excluant la commande exec mais ajoutant :

  DISCOURSE_SMTP_AUTHENTICATION: login

ne renvoie pas d’erreur ; je reçois uniquement :
Delivered mail be6d8718-5445-48cc-a120-6d6d1eab9eb7@discourse.bar.com (4307.2ms)

Mais je ne reçois toujours pas d’e-mail dans ma boîte de réception (j’ai vérifié le dossier spam).

Vous pouvez essayer ceci afin de trouver la bonne configuration et peut-être obtenir un message d’erreur :

docker exec -t -i id_de_votre_conteneur /bin/bash

Ensuite, à l’intérieur du conteneur :

apt install s-nail
echo "Ceci est le corps du message et contient le message" | s-nail -r "foo@bar.com" -s mon_sujet -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 votreemail@exemple.com

Vous pouvez modifier les différentes valeurs (par exemple : smtp-auth=login) pour trouver celle qui convient. Vous obtiendrez peut-être un message d’erreur plus précis.

2 « J'aime »
echo "Ceci est le corps du message et contient le message" | 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

Cela a fonctionné et j’ai reçu le courriel ! J’ai dû cependant changer smtp-auth-password=“xxxxxxxx” pour des guillemets simples, car mon mot de passe commence par un ‘!’.

La seule différence que je vois avec ma configuration est ce drapeau :
-S ssl-verify=ignore

Dois-je aussi l’ajouter ?
Merci pour votre aide !

Essayez d’ajouter :

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Dans votre configuration, c’est équivalent à ssl-verify=ignore.

Aucune erreur, mais toujours aucun e-mail dans la boîte de réception :frowning: Pour récapituler, voici ma configuration actuelle :

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: info@foo.com
  DISCOURSE_SMTP_PASSWORD: 'xxx'
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (facultatif, par défaut true)
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Veuillez réessayer d’ajouter ceci (c’est la même chose que l’option « -r » dans le test en ligne de commande de s-nail :

  - exec: rails r "SiteSetting.notification_email='foo@bar.com'"`

L’adresse e-mail doit correspondre à celle de votre compte.

Vérifiez également l’indentation dans le fichier app.yml et n’oubliez pas le « - » au début. Il y a deux espaces, puis le « - », puis un espace, puis « exec… » :slight_smile:

Je rencontre également ce problème. J’ai également déployé un droplet avec Discourse sur Digital Ocean. J’ai utilisé la commande “sudo ./discourse-doctor” après avoir essayé toutes ces suggestions et reconstruit à chaque fois (sudo ./launcher rebuild app).

504 5.7.4 Type d'authentification non reconnu [BL0PR01CA0015.prod.exchangelabs.com]

s-nail depuis l’intérieur du conteneur a également fonctionné pour moi, sans problème. Et je l’ai essayé sans la clause “-S ssl-verify=ignore”, cela a fonctionné sans problème. Quelqu’un peut-il vérifier que ce qui est installé sur le droplet Digital Ocean envoie correctement les e-mails ?

Renseignez-vous auprès de vos administrateurs de messagerie pour connaître les valeurs valides de smtp_authentication, puis définissez DISCOURSE_SMTP_AUTHENTICATION sur une valeur fonctionnelle.

1 « J'aime »

Merci pour toute l’aide. J’ai abandonné et suis passé à une autre solution de forum.

1 « J'aime »

C’est Microsoft, leurs instructions sont les suivantes, aucune smtp_authentication n’est spécifiée ;

  • Nom du serveur SMTP : smtp.office365.com
  • Port SMTP : 587
  • Méthode de chiffrement SMTP : STARTTLS

Ne supportez-vous pas ce type de serveur ? Pouvez-vous simplement créer un compte, vous y connecter et nous indiquer les paramètres à utiliser ?

DISCOURSE_SMTP_OPENSSL_VERIFY_MODE: none

Cela a résolu mon problème, merci !

1 « J'aime »