$ rake 'emails:test[michael@example.com]'
Testing sending to michael@example.com using mx-out:25.
SMTP server connection successful.
Sending to michael@example.com. . .
Mail accepted by SMTP server.
If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.
If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs to see why it failed to deliver the message.
In questo caso, nessuna email è stata inviata poiché SiteSetting.disable_emails == "non-staff".
Dovremmo avvisare di questo nel task rake. Vogliamo:
aggiungere logica a Email::Sender#send che restituisca un valore indicante se il messaggio è stato inviato (ad esempio: inviato, saltato, disabilitato, nessun_messaggio)
oppure, aggiungere logica al task emails:test che verifichi solo disable_emails?
Credo di aver avuto a che fare con parte di quel codice…
Quindi la parte in cui si afferma che l’email è stata accettata è una bugia?
Ciò che vorrei di più è che il task Rake ignorasse l’impostazione di disabilitazione delle email. Se qualcuno ha accesso alla console, dovrebbe essere in grado di inviare un’email di prova.
Non sono riuscito a riprodurre il problema del mancato invio del messaggio a causa di SiteSetting.disable_emails, ma ho modificato lo script in modo che segnali l’avvenuta esecuzione solo se viene restituito un EmailLog, aggiungendo anche un avviso per l’impostazione disable_emails.
$ bin/rake 'emails:test[]'
Testing sending to using localhost:1025, username: with auth.
Connessione al server SMTP riuscita.
Invio a . . .
Il messaggio non è stato inviato.
Motivo: message.to è vuoto
### ATTENZIONE
L'impostazione del sito `disable_emails` è attualmente impostata su non-staff.
Valuta di modificarla in 'no' prima di procedere con ulteriori troubleshooting.
e
Invio a michael@example.com. . .
Messaggio accettato dal server SMTP.
Message-ID: dfaf1c88-aab6-474b-b50c-8c500afb6291@localhost
Se non ricevi il messaggio, controlla la cartella SPAM
[...]