Sembra connettersi al server e inviare unâemail di prova correttamente se lo faccio manualmente:
> sudo ./launcher enter app
root@support-app:/var/www/discourse# openssl s_client -connect mail.xxxxxxxx.com:465
:
:
enorme quantitĂ di spazzatura
:
:
220 xxxxxxx.com Anti-spam GT for Coremail System (mispb-6da2110f-64b0-4d67-acf1-2d302bd594f9-xxxxxxx.com[20220915])
EHLO mail.xxxxxxxxx.com
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrUDI0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrpDiNKUCa0xDrUUUUj
250-STARTTLS
250-SMTPUTF8
250 8BITMIME
AUTH PLAIN xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
235 Authentication successful
mail from: <xxx@xxxxxx.com>
250 Mail OK
rcpt to: <xxxx@xxxxxxx.com>
250 Mail OK
data
354 End data with <CR><LF>.
content
.
250 Mail OK queued as AQAAfwBXr9nSGHdj3hEgAA--.7073S2
Ă probabile che la porta in uscita sia bloccata dal tuo provider di hosting. Se utilizzi un servizio come Mailgun (o quasi qualsiasi altro) allora la porta 2525 dovrebbe funzionare. Se si tratta di un server di posta che gestisci tu, puoi farlo ascoltare su unâaltra porta (come la 2525).
Oppure (probabilmente la cosa piĂš difficile) puoi aprire una segnalazione con chiunque ospiti il tuo server e chiedere loro di aprire la porta.
Beh, considerando che posso eseguire ./launcher enter app e poi openssl connettersi al server di posta, accedere tramite SMTP e inviare con successo unâe-mail dal container di discourse, dubito che sia la porta a non funzionareâŚ
Ho analizzato il codice e sembra che EHLO non sia stato nemmeno raggiunto. Il server SMTP è connesso ma sembra mancare lâhandshake SSL, quindi il server si disconnette e Discourse non riceve alcuna risposta, da qui lâerrore.
Quindi, ho sospettato che il supporto per la porta 465 sembri avere un bug (predefinito su SSL, ma non credo che Discourse lo riconosca), quindi probabilmente la connessione SSL non viene mai stabilita.
Passare alla porta 25 sembra almeno eliminare lâerrore, anche se non sto ancora ricevendo alcuna email inviataâŚ
EDIT: Posso confermare che la porta 25 funziona correttamente (come dovrebbe anche la 587, ma sfortunatamente il mio server smtp non espone la 587).
Non ho ricevuto email prima a causa del fatto che lâindirizzo IP del server Discourse è stato temporaneamente inserito nella blacklist dal server smtp a causa di troppi tentativi falliti.
Ho anche visto diversi argomenti sul âproblema 465â. Tuttavia, il mio debug via email per tutto ciò che non è ovvio non è eccezionale, quindi ho citato la guida alla risoluzione dei problemi:
Câè qualcosa che possiamo aggiungere a questo per aiutare le persone?
MODIFICA: @RGJ Posso confermare che DISCOURSE_SMTP_FORCE_TLS: true in app.yml risolve con successo il problema!
Suggerisco un avviso in grassetto che dica Se si utilizza la porta 465, impostare DISCOURSE_SMTP_FORCE_TLS: true, o Discourse non dovrebbe essere abbastanza intelligente da rilevarlo?