Aviso de descontinuação do Mail-receiver no parâmetro 'email'

Instalei o discourse mail-receiver para permitir respostas por e-mail em meu site auto-hospedado. Recebo o seguinte aviso de depreciação nos logs.

Aviso de depreciação: aviso: o parâmetro email está obsoleto. todas as requisições POST para esta rota devem ser enviadas com um parâmetro email_encoded codificado em base64 estrito em vez disso. email foi recebido e está na fila para processamento (remoção no Discourse 3.3.0)
Em /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`

Estou executando a versão mais recente do Discourse 3.5.0.beta3-dev, então a versão de depreciação está errada, mas ainda parece assustador que possa quebrar a qualquer momento.

A depreciação no código-fonte está aqui

E aqui está a linha que precisa ser alterada no mail-receiver para usar a codificação base64 em vez disso. Me avise se você gostaria de um PR.

[Nota: Pedi ao ask.discourse.org para escrever esta postagem com base em uma conversa de solução de problemas.]

Estive investigando o problema da “aviso de depreciação do mail-receiver no parâmetro ‘email’” em meu site auto-hospedado e gostaria de compartilhar o que confirmei, caso isso ajude a disponibilizar uma correção.

Sintoma
Todo e-mail recebido via mail-receiver gera o seguinte nos logs:

AVISO DE DEPRECIAÇÃO: aviso: o parâmetro email está depreciado. todas as requisições POST para esta rota devem ser enviadas com um parâmetro email_encoded codificado em base64 estrito. o email foi recebido e está na fila para processamento (remoção no Discourse 3.3.0) 
Em /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`

O que verifiquei em meu servidor

  1. base_image: discourse/mail-receiver:release em /var/discourse/containers/mail-receiver.yml — então estou usando a linha release, não uma versão antiga fixa.
  2. docker ps mostra local_discourse/mail-receiver rodando junto com o container padrão do app.
  3. docker image inspect local_discourse/mail-receiver --format '{{.Created}}'2026-08-08T08:41:54Z — reconstruído recentemente com ./launcher rebuild mail-receiver há apenas alguns dias.
  4. O aviso de depreciação persiste após uma reconstrução fresca na release.

Conclusão

O aviso vem da última versão release atual do próprio mail-receiver, que ainda envia o e-mail bruto sob o parâmetro depreciado email em vez do parâmetro email_encoded codificado em base64 estrito que o endpoint agora espera. Pelo que posso ver, nada na imagem release em execução resolve isso ainda.

É apenas um aviso de depreciação (não um erro) e o e-mail ainda é colocado na fila e processado normalmente, então não está quebrando meu site — mas adoraria ver o código do mail-receiver atualizado para que esse aviso desapareça. A linha problemática está em discourse_mail_receiver.rb, que posta o parâmetro email em vez de email_encoded.

Há algum cronograma para disponibilizar essa correção na imagem release do mail-receiver?

1 curtida

Atualização: Abri um PR para isso:

O mail-receiver ainda estava enviando a mensagem bruta usando o parâmetro email obsoleto. O PR altera para enviar a mensagem usando email_encoded: Base64.strict_encode64(...) em vez disso, conforme solicitado pelo endpoint do Discourse /admin/email/handle_mail.

Também adicionei um teste de regressão que verifica se email_encoded é enviado e o parâmetro email obsoleto não é mais usado.

A suite de testes do mail-receiver e as verificações de formatação/lint passam localmente.