Prima email di registrazione non inviata

Ciao,

Ho appena completato una installazione pulita di Discourse.

Al primo accesso mi è stato chiesto di creare un nome utente e una password per l’account amministratore, con l’invio previsto di un’email di attivazione.

Tuttavia, non ho ricevuto tale email di attivazione (ho ovviamente controllato anche la cartella spam), quindi ho chiamato il medico e ho inviato un messaggio di prova a me stesso come richiesto. Questa email è arrivata immediatamente nella mia casella di posta in arrivo.

So che posso creare un account amministratore da riga di comando, ma vorrei capire cosa sta succedendo, poiché lo stesso problema potrebbe verificarsi per futuri utenti che proveranno a registrarsi.

Puoi aiutarmi?

Cordiali saluti.

Ci sono due cose che potrebbero essere andate storte:

  • l’email non è stata inviata
  • l’email è stata inviata, ma non è stata recapitata

Dato che si tratta di una nuova istanza, il modo più semplice per verificare è controllare tutti i log delle email in uscita dalla console di Rails:

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

Se vedi qualcosa, saprai che è stata almeno consegnata al server SMTP, dove termina la responsabilità di Discourse.

Se non vedi nulla, probabilmente non è stata inviata e puoi trovare log informativi controllando i percorsi URL /logs e /sidekiq dopo aver effettuato l’accesso come amministratore.

Possiamo vedere che il messaggio test è stato inviato (e infatti l’ho ricevuto) utilizzando ./discourse-doctor, ma non c’è traccia dei messaggi di registrazione:

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"]]

Nel file production.log troviamo quattro messaggi di registrazione (infatti ho provato a registrarmi quattro volte). Tuttavia, quei messaggi di registrazione non sono mai stati ricevuti, quindi ipotizzo che non siano mai stati inviati, anche se non ci sono errori o avvisi.
Possiamo notare che in questi log non c’è traccia del messaggio test che è stato inviato e ricevuto con successo.

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"}

Gli altri file di log sono vuoti:

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 

I log Docker dell’app Discourse mostrano quattro messaggi che indicano la mancanza di qualcosa (e abbiamo quattro messaggi di registrazione falliti):

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

Questo può essere d’aiuto?

Poiché l’email di registrazione non è mai arrivata, ho attivato l’account amministratore tramite la riga di comando.

Mi sono registrato con l’account amministratore e ho inviato un’email di test a anotheruser@anotherdomain.org da Admin / Impostazioni email / Impostazioni server → invia email di test.

Questa email di test è stata inviata immediatamente, come possiamo vedere di seguito, ed è stata recapitata nella mia casella di posta:

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"]]

Poi ho provato a registrarmi con lo stesso indirizzo email (anotheruser@anotherdomain.org), ma l’email di registrazione non è stata recapitata (e nemmeno inviata, poiché non appare nei log dalla console di rails).

In conclusione, le email di test vengono inviate e recapitate, ma le email di registrazione non vengono inviate, anche se troviamo una traccia in 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"}

Le persone non possono registrarsi, quindi cosa posso fare per risolvere il problema?

Infine ho cambiato fornitore SMTP e ora tutto funziona, ma sono frustrato di non essere riuscito a capire cosa sia successo…

Alcuni provider di posta elettronica non funzionano. All’inizio ho perso molto tempo senza trovare la causa; in seguito, utilizzando Mailgun, non ho più avuto problemi. So, ad esempio, che QQ Mail non è ben supportato da Discourse.

Dopo aver effettuato l’accesso come amministratore, è apparso qualcosa qui:

Dovrebbero esserci informazioni sufficienti lì per capire come risolvere.