Discourse/mail-receiver:release Docker-Image scheint veraltet zu sein

Hallo,

ich glaube, das offizielle discourse/mail-receiver:release-Docker-Image wurde übersehen und seit geraumer Zeit nicht mehr neu gebaut.

Das GitHub-Repository wird weiterhin aktiv gepflegt:

Das offizielle Docker-Image:

discourse/mail-receiver:release

scheint jedoch fast vor 2 Jahren gebaut worden zu sein.

Dies führt offenbar zu Kompatibilitätsproblemen mit aktuellen Versionen von Discourse.

In meinem Fall erreicht die eingehende E-Mail den Mail-Receiver erfolgreich, wird aber während RCPT TO mit folgender Meldung abgelehnt:

450 4.7.1 Recipient address rejected: Internal error, API request failed

Das alte Docker-Image scheint weiterhin den smtp_should_reject- / Fast-Rejection-Mechanismus zu verwenden.

Die aktuelle Discourse-Quellcode enthält jedoch diesen Kommentar:

# this endpoint has been broken for years
# and was used only in the public mail-receiver's fast rejection code,
# which is removed in https://github.com/discourse/mail-receiver/pull/33

PR #33 hat diesen Fast-Rejection-Code bereits aus mail-receiver entfernt, aber diese Änderungen scheinen nicht im aktuell veröffentlichten discourse/mail-receiver:release-Image enthalten zu sein.

Die offizielle Mail-Receiver-Dokumentation/README weist die Benutzer weiterhin an, Folgendes zu verwenden:

discourse/mail-receiver:release

Ich frage mich daher, ob der Veröffentlichungsprozess für das Docker-Image nach den jüngsten Änderungen einfach übersehen wurde.

Könntet ihr bitte prüfen, ob ein neues discourse/mail-receiver:release-Image gebaut und veröffentlicht werden muss?

Danke!

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:

  1. Das veröffentlichte discourse/mail-receiver:release-Image ist veraltet und enthält immer noch die alte Fast-Rejection-Implementierung.
  2. Der aktuelle main-Branch hat diese Implementierung entfernt, aber die Dockerfile konfiguriert Postfix weiterhin so, dass sie unix:private/policy verwendet.

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.

2 „Gefällt mir“

Ich kann das veraltete Release-Image aus einer anderen Änderung in mail-receiver bestätigen.

Ich habe diesen PR eröffnet, der am 11. August gemerged wurde:

Er ändert den Mail-Empfänger von:

post.set_form_data(email: @mail)

zum neueren email_encoded-Parameter, den Discourse erwartet.

Nachdem der PR gemerged wurde, habe ich mail-receiver am 17. August neu gebaut, aber das frisch gebaute Container-Image enthielt immer noch:

post.set_form_data(email: @mail)

Ich habe die Details hier im gemergten PR hinzugefügt:

Am 22. August habe ich erneut neu gebaut und ./launcher rebuild mail-receiver meldete, dass das veröffentlichte Release-Image aktuell ist, mit dem Digest:

sha256:2a0d45bb92a783c846a821e635413764eeadb3441ef6190085545a4bf054cb1e

Eingehende E-Mails funktionieren auf meiner Installation weiterhin, aber jede empfangene E-Mail löst weiterhin die Discourse-Warnung aus:

the email parameter is deprecated

da das veröffentlichte Image die gemergte Änderung aus #37 nicht enthält.

Dies scheint also unabhängig das erste Problem zu bestätigen, das Sie gefunden haben: Änderungen, die in das #mail-receiver-Repository gemerged wurden, gelangen nicht in das veröffentlichte discourse/mail-receiver:release-Image.

1 „Gefällt mir“