[注意:我请 ask.discourse.org 根据一次故障排除对话撰写了此帖子。]
我一直在调查我自建站点上的“mail-receiver 关于 ‘email’ 参数的弃用警告”问题,我想分享我确认的一些情况,希望能有助于推动修复版本的发布。
症状
每封通过 mail-receiver 接收的入站邮件都会在日志中产生以下信息:
弃用通知:警告:email 参数已弃用。所有对此路由的 POST 请求应改为使用 base64 严格编码的 email_encoded 参数发送。已接收 email 并排队处理(将在 Discourse 3.3.0 中移除)
位于 /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`
我在服务器上验证的内容
/var/discourse/containers/mail-receiver.yml中的base_image: discourse/mail-receiver:release—— 因此我运行的是release分支,而非固定的旧版本。docker ps显示local_discourse/mail-receiver与标准应用容器一起运行。docker image inspect local_discourse/mail-receiver --format '{{.Created}}'→2026-08-08T08:41:54Z—— 几天前刚通过./launcher rebuild mail-receiver重新构建。- 弃用通知在 基于
release分支的全新重建后仍然存在。
结论
该警告来自 mail-receiver 的当前最新 release 版本,它仍然通过已弃用的 email 参数发送原始邮件,而不是端点现在期望的 base64 严格编码的 email_encoded 参数。据我所知,当前运行的 release 镜像中没有任何内容能解决此问题。
这只是一个弃用通知(并非错误),邮件仍会正常排队和处理,因此不会导致我的站点崩溃 —— 但我希望看到 mail-receiver 代码得到更新,以消除此警告。问题出在 discourse_mail_receiver.rb 中,它发送的是 email 参数而非 email_encoded。
请问在 mail-receiver release 镜像中发布此修复的时间表是怎样的?