Nouvelle installation de Discourse/Docker n'envoie pas de mails

Salut tout le monde,
Je veux migrer un forum phpBB3 de longue date vers Discourse. J’ai réussi à configurer Docker et j’ai accès à la configuration initiale. Malheureusement, aucun e-mail n’est envoyé, je ne peux donc pas terminer la configuration.
J’ai effectué quelques débogages et je n’ai pas trouvé la raison, alors je me tourne vers vous pour obtenir de l’aide.

Ma configuration est la suivante : j’ai configuré Apache2 comme proxy inverse pour Docker, ce qui fonctionne. Mon serveur de messagerie est un conteneur Mailcow sur la même machine. Le serveur de messagerie a été testé de manière approfondie et fonctionne bien quotidiennement via SMTP avec STARTTLS sur le port 587 et le webmail.

La configuration dans mon fichier app.yml ressemble à ceci :

  DISCOURSE_SMTP_ADDRESS: mail.example.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: discourse@example.com
  DISCOURSE_SMTP_PASSWORD: "password"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optionnel, par défaut true)
  #DISCOURSE_SMTP_DOMAIN: mail.example.com
  DISCOURSE_NOTIFICATION_EMAIL: discourse@example.com

Lorsque j’exécute ./discourse-doctor, j’obtiens :

==================== TEST DE MAIL ====================
Pour un test robuste, obtenez une adresse sur http://www.mail-tester.com/
Ou envoyez simplement un message test à vous-même.
Adresse e-mail pour le test de mail ? ('n' pour ignorer) [admin@example.com]:
Envoi du mail à admin@example.com. . .
Test d'envoi à admin@example.com en utilisant mail.example.com:587, nom d'utilisateur : discourse@example.com avec authentification simple.
=======================================
ERREUR
=======================================
ERREUR IMPRÉVUE

Impossible d'assigner l'adresse demandée - connect(2) pour [ipv6 correcte]:587

=======================================
SOLUTION
=======================================
Ce n'est pas une erreur courante. Aucune solution recommandée n'existe !

Veuillez signaler le message d'erreur exact ci-dessus sur https://meta.discourse.org/
(Et une solution, si vous en trouvez une !)

Ne parvenant pas à trouver des personnes ayant des messages d’erreur similaires sur le web, je me suis tourné vers ce fil de discussion.
J’ai pu me connecter facilement au serveur de messagerie avec telnet depuis l’extérieur du conteneur.

Ce que j’ai essayé à l’intérieur du conteneur :

getent hosts mail.example.com

a fourni la bonne adresse IPv6
Mais ensuite, les erreurs ont commencé à apparaître :

openssl s_client -connect mail.example.com:587 -starttls smtp
140124593714496:error:0200206E:system library:connect:Connection timed out:../crypto/bio/b_sock2.c:110:
140124593714496:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=110
openssl s_client -6 -connect "[ipv6 correcte]:587" -starttls smtp
139918557709632:error:02002063:system library:connect:Cannot assign requested address:../crypto/bio/b_sock2.c:110:
139918557709632:error:2008A067:BIO routines:BIO_connect:connect error:../crypto/bio/b_sock2.c:111:
connect:errno=99
openssl s_client -connect smtp.gmail.com:587 -starttls smtp

fonctionne très bien
Lorsque j’essaie la commande
openssl s_client -connect mail.example.com:587 -starttls smtp
depuis l’extérieur du conteneur, cela fonctionne également bien.
Mes journaux mailcow/postfix ne montrent rien…
Je suis perdu. Pouvez-vous m’aider à savoir où chercher ensuite ?

1 « J'aime »

Voir Dépannage des e-mails sur une nouvelle installation de Discourse.

Le problème est probablement que votre adresse e-mail de notification n’est pas une adresse que votre serveur de messagerie est configuré pour envoyer.

Mais cela n’explique pas les erreurs « délai de connexion dépassé ». Cela ressemble à un problème de réseau Docker.

1 « J'aime »

Merci pour votre réponse. J’ai essayé d’utiliser la même adresse dans les deux champs, sans changement, même erreur.
En suivant le fil de dépannage :

Que disent les logs de Discourse ?

`Job exception: Cannot assign requested address - connect(2) for [IPv6 correct]:587

Que disent les logs de votre fournisseur de messagerie ?

Aucune entrée de log n’apparaît concernant les e-mails envoyés depuis Discourse.

J’ai ensuite essayé cette méthode https://www.saotn.org/test-smtp-authentication-starttls/ pour voir si je pouvais m’authentifier via openssl, et cela fonctionne bien depuis le serveur, mais pas depuis l’intérieur du conteneur, cela produit l’erreur que j’ai décrite dans le premier post.

Comment puis-je savoir ce qui bloque la connexion ici ?

1 « J'aime »

omfg c’était tellement facile.
J’ai juste eu à activer IPv6 dans mon réseau Docker, juste les trois premières étapes de ce tutoriel et ça a fonctionné.

3 « J'aime »

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