Avertissement de dépréciation du mail-receiver sur le paramètre 'email'

J’ai installé le discourse mail-receiver pour permettre les réponses par e-mail sur mon site auto-hébergé. Je reçois l’avertissement de dépréciation suivant dans les logs.

Avis de dépréciation : avertissement : le paramètre email est déprécié. toutes les requêtes POST vers cette route doivent être envoyées avec un paramètre email_encoded encodé en base64 strict à la place. email a été reçu et est mis en file d'attente pour traitement (suppression dans Discourse 3.3.0)
À /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action`

J’utilise la dernière version de Discourse 3.5.0.beta3-dev, donc la version de dépréciation est erronée, mais il semble toujours effrayant que cela puisse casser à tout moment.

La dépréciation dans le code source est ici

Et ici se trouve la ligne qui doit être modifiée dans mail-receiver pour utiliser l’encodage base64 à la place. Faites-moi savoir si vous souhaitez une PR.

[Note: I asked ask.discourse.org to write this post based on a troubleshooting conversation.]

I’ve been investigating the “mail-receiver deprecation warning on ‘email’ parameter” issue on my self-hosted site, and I wanted to share what I’ve confirmed in case it helps get a fix shipped.

Symptom
Every incoming email via mail-receiver produces this in the logs:

DEPRECATION NOTICE: warning: the email parameter is deprecated. all POST requests to this route should be sent with a base64 strict encoded email_encoded parameter instead. email has been received and is queued for processing (removal in Discourse 3.3.0) 
At /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/actionpack-8.0.5.1/lib/action_controller/metal/basic_implicit_render.rb:8:in `ActionController::BasicImplicitRender#send_action`

What I’ve verified on my server

  1. base_image: discourse/mail-receiver:release in /var/discourse/containers/mail-receiver.yml — so I’m running on the release line, not a pinned old version.
  2. docker ps shows local_discourse/mail-receiver running alongside the standard app container.
  3. docker image inspect local_discourse/mail-receiver --format '{{.Created}}'2026-08-08T08:41:54Z — freshly rebuilt with ./launcher rebuild mail-receiver just days ago.
  4. The deprecation notice persists after a fresh rebuild on release.

Conclusion

The warning is coming from the current latest release of mail-receiver itself, which still sends the raw email under the deprecated email parameter rather than the base64 strict-encoded email_encoded parameter the endpoint now expects. As far as I can tell, nothing in the running release image resolves this yet.

It’s only a deprecation notice (not an error) and email is still queued and processed normally, so it’s not breaking my site — but I’d love to see the mail-receiver code updated so this warning goes away. The offending line is in discourse_mail_receiver.rb, which posts the email param instead of email_encoded.

Is there any timeline for shipping this fix in the mail-receiver release image?

1 « J'aime »

Mise à jour : J’ai ouvert une PR pour cela :

Le mail-receiver envoyait encore le message brut en utilisant le paramètre email obsolète. La PR modifie cela pour envoyer le message en utilisant email_encoded: Base64.strict_encode64(...) à la place, comme demandé par le point de terminaison /admin/email/handle_mail de Discourse.

J’ai également ajouté un test de régression qui vérifie que email_encoded est soumis et que le paramètre email obsolète n’est plus utilisé.

La suite de tests du mail-receiver ainsi que les vérifications de formatage et de lint passent localement.