Premier e-mail d'inscription non envoyé

Bonjour,

Je viens d’effectuer une installation fraîche de Discourse.

La première connexion m’a demandé de créer un identifiant et un mot de passe pour le compte administrateur et était censée m’envoyer un e-mail d’activation.

Cependant, je n’ai pas reçu cet e-mail d’activation (j’ai bien sûr vérifié le dossier spam), alors j’ai appelé le docteur et envoyé un message de test à moi-même comme demandé. Cet e-mail est arrivé immédiatement dans ma boîte de réception.

Je sais que je peux créer un compte administrateur depuis la ligne de commande, mais j’aimerais comprendre ce qui se passe, car cela pourrait être le même cas pour les futurs utilisateurs qui essaieront de s’inscrire.

Pouvez-vous m’aider ?

Cordialement.

Il y a deux choses qui ont pu mal se passer :

  • le courriel n’a pas été envoyé
  • le courriel a été envoyé, mais n’a pas été livré

Puisqu’il s’agit d’une nouvelle instance, le plus simple est de vérifier tous les journaux des courriels sortants depuis la console Rails :

discourse(prod) > EmailLog.all.pluck(:to_address, :email_type, :created_at, :smtp_transaction_response)

Si vous voyez quelque chose, vous saurez qu’il a au moins été transmis au serveur SMTP, ce qui marque la fin de la responsabilité de Discourse.

Si vous ne voyez rien, il est probable qu’il n’ait pas été envoyé. Vous pouvez alors trouver des journaux informatifs en vérifiant les chemins d’URL /logs et /sidekiq après vous être connecté en tant qu’administrateur.

Nous constatons que le message de test a bien été envoyé (et j’ai effectivement reçu le message) en utilisant ./discourse-doctor, mais il n’y a aucune trace des messages d’inscription :

discourse(prod)> EmailLog.all.pluck(:to_address, :email_type, :created_at, :smtp_transaction_response)
=> [["user@domain.org", "test_message", 2026-05-13 16:23:41.417177000 UTC +00:00, "250 2.0.0 Ok: queued as 4B4DDB0059A"]]

Nous trouvons quatre messages d’inscription (j’ai en effet tenté de m’inscrire quatre fois) dans le fichier production.log. Cependant, ces messages d’inscription n’ont jamais été reçus ; je suppose donc qu’ils n’ont jamais été envoyés, même s’il n’y a aucune erreur ni aucun avertissement.
Nous remarquons qu’il n’y a aucune trace du message de test qui a été envoyé et reçu avec succès dans ces journaux.

root@my-vps-app:/var/www/discourse/log# cat production.log | grep user
  Parameters: {"authenticity_token" => "ityyLIdjT7xvdxEd01LjMT08-xxxx", "email" => "user@domain.org", "username" => "admin", "password" => "[FILTERED]", "commit" => "Register"}
  Parameters: {"authenticity_token" => "tnDxYkOOwXYcv59Ez4t8vWPir-xxxx", "email" => "user@domain.org", "username" => "admin", "password" => "[FILTERED]", "commit" => "Register"}
  Parameters: {"authenticity_token" => "bvOwVYHS3N_UELipxVEG3L3LY-xxxx", "email" => "user@domain.org", "username" => "admin", "password" => "[FILTERED]", "commit" => "Register"}
  Parameters: {"authenticity_token" => "oo6GN-n7clGI5F1-uqzsZcadeP-xxxx", "email" => "user@domain.org", "username" => "admin", "password" => "[FILTERED]", "commit" => "Register"}

Les autres fichiers de journal sont vides :

root@my-vps-app:/var/www/discourse/log# cat production_errors.log 
root@my-vps-app:/var/www/discourse/log# cat sidekiq.log 
root@my-vps-app:/var/www/discourse/log# cat unicorn.stderr.log 
root@my-vps-app:/var/www/discourse/log# cat unicorn.stdout.log 

Les journaux Docker de l’application Discourse affichent quatre messages indiquant qu’il manque quelque chose (et nous avons quatre messages d’inscription qui ont échoué) :

root@my-vps:/var/discourse# docker logs app
...
I, [2026-05-13T16:14:30.769269 #3290]  INFO -- : worker=7 gen=0 pid=4295 registered
I, [2026-05-13T16:14:30.815178 #4295]  INFO -- : worker=7 gen=0 pid=4295 ready
X-Accel-Mapping header missing
X-Accel-Mapping header missing
X-Accel-Mapping header missing
X-Accel-Mapping header missing

Cela peut-il aider ?

Comme l’email d’inscription n’est jamais arrivé, j’ai activé le compte administrateur via la ligne de commande.

Je me suis connecté avec le compte administrateur et j’ai envoyé un email de test à anotheruser@anotherdomain.org depuis Admin / Paramètres email / Paramètres du serveur → envoyer un email de test.

Cet email de test a été envoyé immédiatement, comme nous pouvons le voir ci-dessous, et a été livré dans ma boîte de réception :

root@my-vps:/var/discourse# ./launcher enter app
x86_64 arch detected.
root@my-vps-app:/var/www/discourse# rails console
Loading production environment (Rails 8.0.5)
discourse(prod)> EmailLog.all.pluck(:to_address, :email_type, :created_at, :smtp_transaction_response)
=> 
[["user@domain.org",
  "test_message",
  2026-05-13 16:23:41.417177000 UTC +00:00,
  "250 2.0.0 Ok: queued as 4B4DDB0059A"],
 ["anotheruser@anotherdomain.org",
  "test_message",
  2026-05-16 14:44:42.978862000 UTC +00:00,
  "250 2.0.0 Ok: queued as D79DFB00573"]]

Ensuite, j’ai essayé de m’inscrire avec la même adresse email (anotheruser@anotherdomain.org), mais l’email d’inscription n’a pas été livré (et n’a pas été envoyé car il n’apparaît pas dans les journaux de la console rails).

En conclusion, les emails de test sont envoyés et livrés, mais les emails d’inscription ne sont pas envoyés, même si nous trouvons une trace dans production.log :

cat production.log | grep anotheruser
  Parameters: {"email_address" => "anotheruser@anotherdomain.org"}
Started GET "/u/check_email?email=anotheruser%40anotherdomain.org" for xxx.xxx.xxx.xxx at 2026-05-16 17:40:45 +0000
  Parameters: {"email" => "anotheruser@anotherdomain.org"}
  Parameters: {"email" => "anotheruser@anotherdomain.org", "password" => "[FILTERED]", "username" => "NewUser", "password_confirmation" => "[FILTERED]", "challenge" => "xxxxxxxx", "timezone" => "Europe/Paris"}

Les personnes ne peuvent pas s’inscrire. Que puis-je faire pour résoudre ce problème ?

Enfin, j’ai changé de fournisseur SMTP et tout fonctionne bien, mais je suis frustré de ne pas avoir pu comprendre ce qui s’est passé…

Certains serveurs de messagerie ne fonctionnent pas. J’ai moi-même perdu beaucoup de temps au début sans trouver la cause. Depuis que j’utilise Mailgun, tout fonctionne sans problème. À ma connaissance, QQ Mail ne prend pas bien en charge Discourse.

Une fois connecté en tant qu’administrateur, quelque chose s’est-il affiché ici :

Il devrait y avoir suffisamment d’informations là-bas pour résoudre ce problème.