Update: Ich habe den aktuellen main-Branch getestet
Ich habe den aktuellen main-Branch lokal gebaut und ein weiteres Problem festgestellt.
Das alte Docker-Hub-release-Image führt immer noch den alten Fast-Rejection-Code aus und schlägt während des RCPT-Vorgangs mit folgendem Fehler fehl:
450 4.7.1 Recipient address rejected: Internal error, API request failed
Der aktuelle main-Branch hat die smtp_should_reject-/Fast-Rejection-Implementierung jedoch bereits entfernt. Nach dem Bauen von main schlägt Postfix stattdessen mit folgendem Fehler fehl:
warning: connect to private/policy: No such file or directory
451 4.3.5 Recipient address rejected: Server configuration problem
Ich habe dies auf zwei verbliebene Referenzen in der Dockerfile zurückgeführt:
check_policy_service unix:private/policy
Der Policy-Dienst selbst wurde entfernt, aber smtpd_recipient_restrictions referenziert immer noch seinen Socket.
Ich habe unix:private/policy aus smtpd_recipient_restrictions entfernt, das Image neu gebaut, und eingehende SMTP-E-Mails wurden dann erfolgreich akzeptiert.
Nach dem Wechsel zu einem Global API Key gelang auch die Zustellung an Discourse:
dsn=2.0.0, status=sent (delivered via discourse service)
Es scheinen also zwei separate Probleme zu geben:
- Das veröffentlichte
discourse/mail-receiver:release-Image ist veraltet und enthält immer noch die alte Fast-Rejection-Implementierung. - Der aktuelle
main-Branch hat diese Implementierung entfernt, aber dieDockerfilekonfiguriert Postfix weiterhin so, dass sieunix:private/policyverwendet.
Möglicherweise gibt es auch ein separates Problem mit granularen API-Keys: Ein Key, der nur auf receive emails beschränkt war, lieferte HTTP 404 von /admin/email/handle_mail, während ein Global API Key HTTP 200 zurückgab.
Ich kann einen PR für die zwei veralteten private/policy-Referenzen in der Dockerfile einreichen, falls das hilfreich wäre.