Ciao. Ho un Discourse senza Docker sul mio server locale. Ho anche installato iRedMail. Inizialmente ho provato a utilizzare un server SMTP di mail.ru. I messaggi di prova sono stati inviati, così come gli inviti. Ma non sono arrivate notifiche via email e il reset della password non ha funzionato. Ho pensato che dovessi installare un server di posta locale e controllare i log per capire perché i messaggi non venivano inviati. L’ho fatto. I messaggi locali vengono scambiati correttamente tra le caselle di posta. Questo è sufficiente per i test. Pensavo che fosse abbastanza per Discourse e la posta locale. Ho configurato il mio server SMTP locale. Ho inviato un’email di test… ed è arrivata! Vincitore (no). Ho controllato i log di /var/log/mail.log del server di posta.
Ok. Ora sto inviando un invito alla stessa casella… Controllo i log del server di posta… …e non c’è nulla. È vuoto. Non so qual è il problema.
Tutto quello che chiedo è una guida su come far comunicare Discourse con Postfix.
Al momento ho un account amministratore attivo abilitato manualmente perché, come avrete intuito, non ho ricevuto l’email di verifica. Fornirò qualsiasi file, come impostazioni e log, su richiesta.
Normalmente, quando si verifica questo tipo di problema, eseguiamo un comando simile a:
sendmail -vvv A_VALID_EMAIL_ADDRESS < email.txt
Questo genererà un output molto dettagliato del processo di handshake tra te e il server SMTP; e solitamente questa registrazione dettagliata ti fornirà gli indizi necessari per risolvere il problema.
Ciao! Non ho molta esperienza. Ho installato Discourse e un server di posta per la prima volta. Potresti spiegarmi nel dettaglio cosa devo fare esattamente? Grazie.
Per prima cosa, devi temporaneamente “dimenticare” Discourse e concentrarti sull’attivazione, sui test e sulla verifica del corretto funzionamento del tuo relay SMTP per l’invio delle email.
Ho creato 2 caselle di posta nel mio dominio locale “@ugda.space”. I messaggi arrivano l’uno all’altro. Alle caselle di Gmail, Mail e Yandex, i messaggi non arrivano reciprocamente. Non ho configurato questa funzionalità, perché pensavo che la comunicazione interna al dominio locale fosse sufficiente per i test.
@Anv Siate diretti: una buona regola non scritta dovrebbe essere qualcosa come: “non chiedere alle persone di parlarti se non sei disposto a impegnarti ad ascoltarle”. Per “ascoltare”, intendo prendere in considerazione ciò che ti dicono. Partecipare a un forum conta come “chiedere alle persone di parlarti”, immagino. Soprattutto se stai chiedendo aiuto.
Continuare a ripetere la stessa cosa e costringere il tuo interlocutore a ripetersi non porta da nessuna parte. Per nessuno.
Ora, perché non hai già eseguito questo comando da riga di comando?
Capisco la tua frustrazione; e mi dispiace di non avere più tempo libero per risolvere ogni volta il problema del tuo relay SMTP ogni volta che rispondi.
Sembra che il tuo host SMTP stia ricevendo le email; ma questo non significa necessariamente che funzioni correttamente come relay SMTP.
Ricordo, a memoria, che esiste un’opzione per utilizzare sendmail e altri client di posta per verificare se l’host SMTP funziona correttamente come relay. Potresti fare qualche ricerca sull’opzione sendmail -G (o cercare un altro modo per testarlo). Fondamentalmente, devi inviare un’email a un indirizzo di test diverso dall’host su cui stai lavorando, utilizzando il tuo nuovo host SMTP come relay.
Un po’ di storia
In passato, la maggior parte degli host SMTP inoltrava le email senza configurazioni aggiuntive; ma poi tutti gli host SMTP su internet sono diventati grandi scatole di SPAM perché gli spammer sfruttavano la funzionalità di relay (senza che il proprietario del server lo sapesse) per inviare spam in tutto il mondo.
In sintesi, devi verificare se il tuo nuovo host SMTP può inoltrare le email per te.
Hai esaminato attentamente la tua guida di configurazione per vedere se menzionava la configurazione dell’host SMTP come relay?
Sto solo pensando ad alta voce e spero che questo ti aiuti in qualche modo a passare al passo successivo del tuo progetto con l’host SMTP.
Hai menzionato di aver installato Discourse senza Docker. Sarebbe possibile per te eseguire una nuova installazione “classica” (con Docker) inserendo l’indirizzo email che hai creato durante questa nuova installazione? O non puoi eseguire Docker sulla macchina che stai utilizzando?
Ho provato con Docker, ma non ho ricevuto nessuna email. Non sono nemmeno riuscito a creare un account amministratore. Ho deciso di rimuovere Docker perché ero inesperto.
Sono sicuro che non sia di grande aiuto, ma come “un semplice altro dato”, non ho mai avuto problemi a configurare la posta SMTP su Discourse, né in un’installazione di produzione basata su Docker né in un ambiente di sviluppo macOS desktop “senza Docker”; ho sempre utilizzato un servizio SMTP di terze parti.
La vostra situazione ha catturato la mia attenzione; ora sono molto interessato a questo piccolo enigma e cercherò di trovare tempo nelle prossime settimane per configurare un relay SMTP su una slice VPS Ubuntu Linux e vedere se riesco a far funzionare Discourse con un relay SMTP “alla vecchia maniera” invece di affidarmi a “soluzioni di terze parti”.
Mi scuso in anticipo se ci vorranno alcune settimane per costruire questa configurazione. Sto accumulando un bel po’ di noiosa burocrazia governativa perché mi sto divertendo troppo a imparare lo sviluppo di plugin per Discourse e il modo in cui Rails gestisce tutti i suoi componenti in movimento.
Dopo alcuni tentativi ed errori, sono riuscito a far funzionare Discourse con Postfix. Ecco i passaggi che ho seguito, spero possano essere utili:
Imposta un record A che punti al tuo nuovo server, ad esempio forum.domain.com
Installa Postfix, imposta forum.domain.com come myhostname e aggiungi 172.17.0.0/16 a mynetworks in modo che il container di Discourse possa comunicare con Postfix senza autenticazione. 172.17.0.0/16 è la rete predefinita utilizzata dai container Docker.
Assicurati che Postfix possa inviare email. Io preferisco usare swaks
swaks -t your_name@gmail.com
Dovresti ricevere un’email con oggetto “This is a test mailing”.
In containers/app.yml, assicurati di commentare le 3 righe relative a DISCOURSE_SMTP_USER_NAME, DISCOURSE_SMTP_PASSWORD e DISCOURSE_SMTP_ENABLE_START_TLS
e imposta DISCOURSE_SMTP_DOMAIN su forum.domain.com (ricordati di sostituire con il tuo nome di dominio qui)
Per testare, puoi connetterti al container di Discourse con docker exec -it app bash ed eseguire: