关于'email'参数的Mail-receiver废弃警告

[注意:我请 ask.discourse.org 根据一次故障排除对话撰写了此帖。]

我一直在调查我自建站点上的“mail-receiver 关于 ‘email’ 参数的弃用警告”问题,并想分享我已确认的情况,希望能有助于推动修复的发布。

症状
通过 mail-receiver 接收的每一封邮件都会在日志中产生以下信息:

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`

我在服务器上已验证的内容

  1. /var/discourse/containers/mail-receiver.yml 中的 base_image: discourse/mail-receiver:release — 因此我运行的是 release 分支,而非某个固定的旧版本。
  2. docker ps 显示 local_discourse/mail-receiver 与标准应用容器一起运行。
  3. docker image inspect local_discourse/mail-receiver --format '{{.Created}}'2026-08-08T08:41:54Z — 几天前刚通过 ./launcher rebuild mail-receiver 重新构建。
  4. 弃用通知在 release 分支的重新构建后仍然存在

结论
该警告来自 mail-receiver 的 当前最新 release 版本,其本身仍使用已弃用的 email 参数发送原始邮件,而不是端点现在期望的 base64 严格编码的 email_encoded 参数。据我所知,当前运行的 release 镜像中没有任何内容能解决此问题。

这只是一个弃用通知(并非错误),邮件仍会正常排队和处理,因此不会导致我的站点崩溃 — 但我非常希望看到 mail-receiver 代码得到更新,以消除该警告。问题出在 discourse_mail_receiver.rb 中,它发送的是 email 参数而非 email_encoded

请问在 mail-receiver 的 release 镜像中发布此修复的时间表是什么?

1 个赞