Problemi con l'email di amministratore all'iscrizione

Quindi… ci sto lavorando da circa 6 ore e ho pensato di chiedere un po’ di aiuto.
Ho configurato Discourse su un server, avviato il container e provato a creare il mio primo account amministratore.
Il problema: non ricevo l’email di registrazione.

Cosa ho fatto:

  • Ho assicurato che SMTP fosse configurato correttamente nelle impostazioni e ho usato uno strumento di test online SMTP Test Tool per confermare che le impostazioni funzionassero, e funzionano. (usando quel sito)
  DISCOURSE_SMTP_ADDRESS: MY_SMTP_HOST
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: MY_SMTP_USERNAME
  DISCOURSE_SMTP_PASSWORD: MY_SMTP_PASSWORD
  DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, valore predefinito true)
  • Ho verificato che sia configurata una sola email per la configurazione iniziale degli account amministratore

  • Ho controllato che SSL funzioni effettivamente (ed è così!)

  • Ho provato due reinstallazioni pulite di Ubuntu seguendo la guida pubblicata online per la configurazione.

  • Ho verificato che non ci siano firewall di rete che blocchino il traffico in uscita o in entrata.

  • Sono riuscito a fare telnet con successo al mio server SMTP dal server che ospita Discourse.

  • Ho impostato correttamente anche questo:
    - exec: rails r "SiteSetting.notification_email='noreply@MY_WEB_SITE'"
    alla fine di app.yml

Non so cosa altro provare a questo punto. Grazie.

Se esegui discourse-doctor, ti restituisce un errore evidente?

cd /var/discourse
./discourse-doctor

Ah sì, mi sono dimenticato di menzionarlo. Un attimo, lasciami rieseguire per catturare l’output che ho notato.


==================== TEST MAIL ====================
Per un test robusto, ottieni un indirizzo da http://www.mail-tester.com/
Oppure invia semplicemente un messaggio di prova a te stesso.
Indirizzo email per il test mail? ('n' per saltare) [MY_EMAIL]:
Invio mail a MY_EMAIL. . .
Test invio a MY_EMAIL usando smtp.MY_SMTP:587.
Connessione al server SMTP riuscita.
Invio a MY_EMAIL. . .
Invio mail fallito.
Sostituzione: SMTP_PASSWORD
Sostituzione: LETSENCRYPT_ACCOUNT_EMAIL
Sostituzione: DEVELOPER_EMAILS
Sostituzione: DISCOURSE_DB_PASSWORD
Sostituzione: Invio mail a

==================== FATTO! ====================
Vuoi servire una versione pubblicamente accessibile di questo file? (Y/n)

Noto che per qualche motivo “Invio mail fallito” anche se “Connessione al server SMTP riuscita”.

Se la tua password contiene in qualche modo dei caratteri speciali, hai provato a racchiuderla tra virgolette?

Era precedentemente racchiuso tra virgolette, ma stavo seguendo una guida online che non lo aveva tra virgolette; proverò di nuovo con le virgolette doppie ".

Ricostruzione in corso.

Va bene, è di nuovo attivo. Un attimo.

Stesso errore:


==================== TEST MAIL ====================
Per un test robusto, ottieni un indirizzo da http://www.mail-tester.com/
Oppure invia semplicemente un messaggio di prova a te stesso.
Indirizzo email per il test mail? ('n' per saltare) [MY_EMAIL]: MY_EMAIL
Invio di mail a MY_EMAIL. . .
Test dell'invio a MY_EMAIL utilizzando MY_SMTP_SERVER:587.
Connessione al server SMTP riuscita.
Invio a MY_EMAIL. . .
Invio della mail fallito.
Sostituzione: SMTP_PASSWORD
Sostituzione: LETSENCRYPT_ACCOUNT_EMAIL
Sostituzione: DEVELOPER_EMAILS
Sostituzione: DISCOURSE_DB_PASSWORD
Sostituzione: Invio di mail a

==================== FINE! ====================
Vuoi rendere disponibile pubblicamente una versione di questo file? (Y/n)n
Log pubblicamente disponibile non generato.

Puoi esaminare l'output di questo script con
LESS=-Ri less /tmp/discourse-debug.txt

MA PRIMA, assicurati di conoscere i primi tre comandi qui sotto!!!

Comandi da conoscere quando si visualizza il file con il comando sopra (chiamato 'less'):
q              -- esci
/error<ENTER>  -- cerca la parola 'error'
n              -- cerca la prossima occorrenza
g              -- vai all'inizio del file
f              -- vai avanti di una pagina
b              -- vai indietro di una pagina
G              -- vai alla fine del file

Ho provato con una password standard senza caratteri, con e senza le virgolette, ma il risultato non è cambiato.

Invio della posta non riuscito.

Ti suggerisco di provare a configurare Mailgun.

Proverò ora. Grazie.

Prima di provarlo, seguirò il link Discourse app.yml doesn't like email password contain "#" - #15 by elijah mettendo la password tra virgolette doppie, e infine impostando una password che non contenga caratteri speciali.

Se non funziona, configurerò Mailgun (come ultima risorsa, poiché il mio server di posta attuale contiene molte email).

PROGRESSO! È apparso un nuovo messaggio di errore dopo aver messo la password tra doppi apici in questo modo "'mypass'"

==================== TEST MAIL ====================
Per un test robusto, ottieni un indirizzo da http://www.mail-tester.com/
Oppure invia semplicemente un messaggio di prova a te stesso.
Indirizzo email per il test mail? ('n' per saltare) [sender_email]: my_email
Invio della mail a my_email. . .
Test dell'invio a my_email utilizzando my_smtp:587.
======================================== ERRORE ========================================
                                    ERRORE INATTESO

SMTP-AUTH richiesto ma frase segreta mancante

====================================== SOLUZIONE =======================================
Questo non è un errore comune. Non esiste una soluzione consigliata!

Si prega di segnalare il messaggio di errore esatto sopra a https://meta.discourse.org/
(E una soluzione, se ne trovi una!)
=======================================================================================
Sostituzione: SMTP_PASSWORD
Sostituzione: LETSENCRYPT_ACCOUNT_EMAIL
Sostituzione: DEVELOPER_EMAILS
Sostituzione: DISCOURSE_DB_PASSWORD
Sostituzione: Invio della mail a

==================== FATTO! ====================
Desideri servire una versione pubblicamente accessibile di questo file? (Y/n)

L’invio manuale di un’email tramite telnet sembra funzionare, ma non quando si utilizzano le email di Discourse, quindi qualcosa sembra non essere a posto.

Nel file production.log ho trovato questo, potrebbe essere la causa?


Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL) sottoscrizione fallita, riconnessione tra 1 secondo. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL) sottoscrizione fallita, riconnessione tra 1 secondo. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL) sottoscrizione fallita, riconnessione tra 1 secondo. Call stack ["/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/redis-4.1.3/lib/redis/client.rb:362$
Eccezione Job: Errore di connessione a Redis su localhost:6379 (Errno::EADDRNOTAVAIL)

Ulteriori approfondimenti hanno rilevato Eccezione Job: SSL_connect returned=1 errno=0 state=error: dh key too small, quindi sembra che ci siano problemi con l’SSL del server di posta. Tempo di Mailgun.