Ho testato il server SMTP con Telnet:
Telnet si è connesso al server SMTP.
Telnet mi ha consentito di autenticarmi sul server SMTP.
Telnet mi ha permesso di inviare con successo un’email utilizzando il server SMTP, e ho utilizzato esattamente gli stessi valori in Telnet che sono presenti nel file /var/discourse/containers/app.yaml.
Discourse doctor afferma che Discourse si è connesso con successo al server SMTP.
Discourse doctor afferma che Discourse non è riuscito a inviare l’email di prova.
Di conseguenza, Discourse presenta dei bug che ne impediscono l’invio di email.
No. Perché il server SMTP funziona perfettamente, come già descritto, e Discourse è installato correttamente e restituisce correttamente la schermata che richiede l’email di registrazione per l’amministratore. Tuttavia, quell’email non viene inviata.
Ho trovato un errore in /var/discourse/shared/standalone/log/rails/production.log:
Rendering layouts/email_template.html.erb
Rendered layouts/email_template.html.erb (Durata: 0.1ms | Allocazioni: 32)
Mail consegnata f915c15e-9c4d-4d4e-9527-81bc4984540c@forum.domain.com (63.7ms)
Eccezione del job: il nome host "mail.forum.domain.com" non corrisponde al certificato del server
Questo non sembra un bug di Discourse. Sembra piuttosto un problema nella configurazione del resolver DNS dell’host o nel certificato SSL.
Dato che telnet non utilizza SSL, immagino sia per questo che hai riscontrato che funziona. Su Linux potresti riuscire a fare ulteriori test utilizzando OpenSSL per verificare la connessione ed esaminare i certificati.
L’HTTPS sul sito funziona perché mostra il lucchetto verde nella barra degli indirizzi. Non c’è nulla di sbagliato nel certificato SSL del sito. C’è un problema nel modo in cui Discourse rileva il certificato SSL.
Il certificato del servizio SMTP è semplicemente il certificato SSL del server, non quello del sito web. Il certificato SSL del server è corretto e funziona.
Per configurare un server SMTP locale sulla stessa macchina del contenitore Discourse, Discourse non specifica esattamente quali siano i valori corretti per le impostazioni SMTP in app.yml. Ciò genera molta confusione e numerosi errori.
Nelle impostazioni di app.yml, Discourse non chiarisce in modo esplicito cosa debba essere DISCOURSE_SMTP_ADDRESS.
Discourse non chiarisce in modo esplicito cosa si intenda per “certificato del server” in questo messaggio di errore che appare dopo il fallimento dell’invio della prima email di registrazione. Il messaggio di errore si trova in:
/discourse/shared/standalone/log/rails/production.log
“Eccezione del job: l’hostname “mail.forum.dominio.com” non corrisponde al certificato del server”.
Tuttavia, in realtà, il “certificato del server” è semplicemente il certificato SSL del server.
Inoltre, nel messaggio di errore, Discourse menziona erroneamente “hostname”, mentre in realtà ci si riferisce a DISCOURSE_SMTP_ADDRESS.
Si è verificata una difficoltà a causa dell’ambiguità di Discourse.
La soluzione è stata semplicemente impostare il certificato SSL del server sul certificato SSL corretto.
Quando il problema è stato pubblicato sul forum di Discourse, sono state fornite molte risposte fuorvianti e poco chiare.
Ora Discourse Doctor conferma che l’email è stata inviata:
Invio della posta a admin@email.com. . .
Test dell'invio a admin@email.com utilizzando forum.domain.com:587.
Connessione al server SMTP riuscita.
Invio a admin@email.com. . .
Posta accettata dal server SMTP.
Tuttavia, non c’è nessuna email nella casella di posta in arrivo o nello spam.