$ 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 diesem Fall wurde keine E-Mail gesendet, da SiteSetting.disable_emails == "non-staff" gilt.
Wir sollten dies in der Rake-Aufgabe warnend hervorheben. Möchten wir:
Logik in Email::Sender#send hinzufügen, die einen Wert zurückgibt, der angibt, ob die Nachricht gesendet wurde (z. B. gesendet, übersprungen, deaktiviert, keine_nachricht)
oder Logik in der emails:test-Aufgabe hinzufügen, die nur auf disable_emails prüft?
Ich konnte das Problem, dass Nachrichten wegen SiteSetting.disable_emails nicht gesendet wurden, nicht reproduzieren. Ich habe das Skript jedoch so geändert, dass es nur dann Erfolg meldet, wenn ein EmailLog zurückgegeben wird, und füge eine zusätzliche Warnung für die Einstellung disable_emails hinzu.
$ bin/rake 'emails:test[]'
Testen des Versands an über localhost:1025, Benutzername: mit Auth.
SMTP-Server-Verbindung erfolgreich.
Senden an . . .
Mail wurde nicht gesendet.
Grund: message.to ist leer
### WARNUNG
Die Site-Einstellung `disable_emails` ist derzeit auf non-staff gesetzt.
Überlegen Sie, sie vor weiteren Fehlerbehebungen auf 'no' zu ändern.
und
Senden an michael@example.com. . .
Mail vom SMTP-Server akzeptiert.
Message-ID: dfaf1c88-aab6-474b-b50c-8c500afb6291@localhost
Wenn Sie die Nachricht nicht erhalten, überprüfen Sie Ihren SPAM-Ordner
[...]