L'e-mail ne fonctionne pas ; Net::SMTPAuthenticationError

J’héberge le serveur Discourse sur DigitalOcean, le domaine provient de PorkBun, le serveur de messagerie est MailGun.

Mon compte MailGun est activé et le domaine (discourse.mydomain.com) est vérifié pour être utilisé avec mg.mydomain.com. Tous les enregistrements DNS TXT sont en place.
J’ai suivi toutes les étapes de dépannage du fil de discussion ici à plusieurs reprises ; Troubleshoot email on a new Discourse install

Je peux me connecter en telnet sur l’hôte et envoyer des e-mails manuellement sans problème (https://serverfault.com/questions/49935/easiest-way-to-send-a-test-email-from-a-server-to-test-settings)

Le fichier app.yml contient ceci :

  DISCOURSE_DEVELOPER_EMAILS: 'myemail@gmail.com'
  DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: mail
  DISCOURSE_SMTP_PASSWORD: "12345678901234567890"
  DISCOURSE_SMTP_DOMAIN: mg.mydomain.com
  DISCOURSE_NOTIFICATION_EMAIL: admin@mg.mydomain.com

Lorsque j’essaie d’exécuter discourse-doctor ou si j’exécute ./launcher enter app puis rake 'emails:test[mail@mg.mydomain.com]', j’obtiens l’erreur suivante :

======================================== ERREUR ========================================
                                    ERREUR IMPRÉVUE

Net::SMTPAuthenticationError

====================================== 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 !)
=======================================================================================

Quelque chose ne fonctionne pas sur Discourse, car je n’ai aucun problème à envoyer des e-mails manuellement. J’ai cherché sur Google et sur les forums ici pendant de nombreuses heures, sans solution pour l’instant. Des idées ?

Il y a un problème avec votre nom d’utilisateur/mot de passe. Il est possible que votre mot de passe contienne un caractère qui nécessite une échappement, comme une étoile ou une apostrophe, peut-être (il sera donc plus facile de changer le mot de passe pour ne pas inclure ce caractère).

Voir Dépannage de l’e-mail sur une nouvelle installation de Discourse

2 « J'aime »

le mot de passe ne contient aucun de ces caractères. En fait, c’est le mot de passe généré automatiquement par MailGun, et il ne contient que des lettres et des chiffres ainsi que quelques caractères ‘-’. Il est assez long.

C’était ma meilleure supposition. J’essaierais de générer un nouveau mot de passe et/ou de le copier-coller à nouveau. Il est extrêmement peu probable qu’il s’agisse d’un bug dans Discourse.

1 « J'aime »

Je parierais que DISCOURSE_SMTP_USER_NAME est incorrect - mail n’est probablement pas suffisant pour que mailgun vous authentifie. Ce devrait probablement être mail@mg.mydomain.com

Je suppose que vous pensez que DISCOURSE_SMTP_DOMAIN est le domaine de l’utilisateur ? Il ne l’est pas - c’est le domaine EHLO. Vous n’avez presque certainement pas besoin de le définir.

1 « J'aime »

Je viens de réaliser cela aussi, lorsque j’ai testé avec telnet, j’ai utilisé « mail@mg.mydomain.com » comme nom d’utilisateur et cela a fonctionné, je vais donc réessayer avec cela comme DISCOURSE_SMTP_USER_NAME.

Je suppose que vous pensez que DISCOURSE_SMTP_DOMAIN est le domaine de l’utilisateur ? Ce n’est pas le cas - c’est le domaine EHLO. Vous n’avez probablement pas besoin de le définir.

Je ne suis pas sûr de comprendre ce que cela signifie.

Pour MailGun, j’utilisais mg.mydomain.com, pour Discourse, j’utilisais discourse.mydomain.com. Je n’ai actuellement aucun enregistrement DNS pour mydomain.com, seulement pour le sous-domaine Discourse et les enregistrements TXT pour le DNS MailGun.

Supprimez la ligne pour DISCOURSE_SMTP_DOMAIN, vous n’en avez presque certainement pas besoin.

Elle est utilisée pendant la négociation SMTP comme domaine HELO/EHLO.

1 « J'aime »

ah oui, et aussi lorsque j’ai testé avec telnet, j’ai bien pu envoyer l’e-mail depuis toutes les adresses suivantes :

  • mail@discourse.mydomain.com
  • mail@mydomain.com
  • mail@mg.mydomain.com

Je ne suis pas sûr de celle que je suis censé utiliser ? Est-ce que ça a de l’importance ?

Cela dépend de votre configuration et de ce que vous voulez que votre flux de messagerie ressemble.

1 « J'aime »

ça marche maintenant, merci à tous pour votre aide :slight_smile:

la solution était d’utiliser

  DISCOURSE_SMTP_USER_NAME: mail@mg.mydomain.com

au lieu de

  DISCOURSE_SMTP_USER_NAME: mail
2 « J'aime »

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.