Bei der ersten Registrierung per E-Mail, installiert mit dem neuesten Docker-Image, antwortet mein SMTP-Server mit:
Unexpected return code 554 (expected 250):
“Access denied: User `arn:aws:iam::[acct]:user/[user]' is not authorized to perform `ses:SendRawEmail' on resource `arn:aws:ses:us-west-1:[acct]:identity/[identity]'”.
In der Discourse-Logdatei production.log steht jedoch Folgendes:
Started PUT "/finish-installation/resend-email" for [ip] at 2020-11-16 20:58:10 +0000
Processing by FinishInstallationController#resend_email as HTML
Parameters: ...
Completed 200 OK in 23ms (Views: 6.4ms | ActiveRecord: 0.0ms | Allocations: 6023)
...
Delivered mail [randid]@[hostname] (191.3ms)
Meiner Meinung nach sollte die Website oder zumindest die Logs einen Fehler zurückgeben, anstatt eine Erfolgsmeldung.
In der Regel werden E-Mails in einer Hintergrundwarteschlange versendet, sodass dies für den Benutzer unsichtbar bleibt.
Ich bin jedoch offen dafür, den Assistenten bei Fehlern etwas auffälliger und lauter zu gestalten. Dafür müsste er jedoch den Server abfragen, um dies zu ermitteln. Das ist wahrscheinlich eine ziemlich große Änderung, ich bin mir nicht sicher.
Für den Assistenten: Es ist in Ordnung, wenn der Assistent den Fehler nicht anzeigt. Er sollte jedoch auch nicht signalisieren, dass die E-Mail erfolgreich gesendet wurde. Eine Aussage, die der Wahrheit näher kommt, wäre hilfreicher. Falls es zu schwierig ist, den Rückgabestatus anzuzeigen, wäre es besser zu sagen: „Registrierungs-E-Mail erfolgreich in die Warteschlange aufgenommen. Überprüfen Sie /path/to/log auf den Status.
Danke, dass du offen für die Änderung bist. Ich werde sie auf meine To-Do-Liste setzen, aber ich werde nicht beleidigt sein, wenn jemand anderes zuerst dazu kommt
Nach dem Admin-Login sind die E-Mail-Fehler in der Admin-Konsole sichtbar, was darauf hindeutet, dass sie in der Datenbank gespeichert sind und bereits vor dem Abschluss der ersten Admin-Registrierung über die Datenbank zugänglich gewesen sein könnten.
Die Tabelle skipped_email_logs enthält die Informationen, die ich gesucht habe.
Wenn Sie als Benutzer discourse im Discourse-Container angemeldet sind, können Sie folgenden Befehl ausführen:
psql discourse -c "select * from skipped_email_logs"