Discourse/mail-receiver:release l'image Docker semble obsolète

Bonjour,

Je pense que l’image Docker officielle discourse/mail-receiver:release a peut-être été oubliée et n’a pas été reconstruite depuis un certain temps.

Le dépôt GitHub est toujours activement maintenu :

Cependant, l’image Docker officielle :

discourse/mail-receiver:release

semble avoir été construite il y a presque 2 ans.

Cela semble provoquer des problèmes de compatibilité avec les versions actuelles de Discourse.

Dans mon cas, les e-mails entrants atteignent le récepteur de courrier avec succès, mais sont rejetés lors de RCPT TO avec :

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

L’ancienne image Docker semble toujours utiliser le mécanisme smtp_should_reject / de rejet rapide.

Cependant, le code source actuel de Discourse contient ce commentaire :

# 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

La PR #33 a déjà supprimé ce code de rejet rapide de mail-receiver, mais ces changements ne semblent pas être inclus dans l’image discourse/mail-receiver:release actuellement publiée.

La documentation/README officielle du mail-receiver indique toujours aux utilisateurs d’utiliser :

discourse/mail-receiver:release

Je me demande donc si le processus de publication de l’image Docker a simplement été manqué après les récents changements.

Pourriez-vous vérifier si une nouvelle image discourse/mail-receiver:release doit être construite et publiée ?

Merci !

Mise à jour : J’ai testé la branche main actuelle

J’ai construit la branche main actuelle localement et j’ai trouvé un autre problème.

L’ancienne image release de Docker Hub exécute toujours l’ancien code de rejet rapide et échoue lors de la commande RCPT avec :

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

Cependant, la branche main actuelle a déjà supprimé l’implémentation de smtp_should_reject / rejet rapide. Après la construction de main, Postfix échoue plutôt avec :

warning: connect to private/policy: No such file or directory
451 4.3.5 Recipient address rejected: Server configuration problem

J’ai retracé ce problème à deux références restantes dans le Dockerfile :

check_policy_service unix:private/policy

Le service de politique lui-même a été supprimé, mais smtpd_recipient_restrictions référence toujours son socket.

J’ai supprimé unix:private/policy de smtpd_recipient_restrictions, reconstruit l’image, et les e-mails SMTP entrants ont alors été acceptés avec succès.

Après le passage à une clé API globale, la livraison vers Discourse a également réussi :

dsn=2.0.0, status=sent (delivered via discourse service)

Il semble donc y avoir deux problèmes distincts :

  1. L’image publiée discourse/mail-receiver:release est obsolète et contient toujours l’ancienne implémentation de rejet rapide.
  2. La branche main actuelle a supprimé cette implémentation, mais le Dockerfile configure toujours Postfix pour utiliser unix:private/policy.

Il pourrait y avoir également un problème distinct avec les clés API granulaires : une clé limitée uniquement à receive emails a renvoyé une erreur HTTP 404 depuis /admin/email/handle_mail, tandis qu’une clé API globale a renvoyé une réponse HTTP 200.

Je peux soumettre une PR pour les deux références obsolètes de private/policy dans le Dockerfile si cela peut être utile.

2 « J'aime »

Je peux confirmer l’image de publication obsolète à partir d’une autre modification dans mail-receiver.

J’ai ouvert cette PR, qui a été fusionnée le 11 août :

Elle modifie le mail receiver pour passer de :

post.set_form_data(email: @mail)

au paramètre plus récent email_encoded attendu par Discourse.

Après la fusion de la PR, j’ai reconstruit mail-receiver le 17 août, mais le conteneur nouvellement reconstruissait contenait toujours :

post.set_form_data(email: @mail)

J’ai ajouté les détails à la PR fusionnée ici :

J’ai reconstruit à nouveau le 22 août et ./launcher rebuild mail-receiver a signalé que l’image de publication publiée était à jour, avec le digest :

sha256:2a0d45bb92a783c846a821e635413764eeadb3441ef6190085545a4bf054cb1e

La réception de courriels fonctionne toujours sur mon installation, mais chaque courriel reçu continue de déclencher l’avertissement suivant de Discourse :

the email parameter is deprecated

car l’image publiée ne contient pas la modification fusionnée de la #37.

Cela semble donc confirmer indépendamment le premier problème que vous avez identifié : les modifications fusionnées dans le dépôt mail-receiver ne sont pas prises en compte dans l’image publiée discourse/mail-receiver:release.

1 « J'aime »