자체 호스팅된 사이트에서 이메일로 답글을 보낼 수 있도록 discourse mail-receiver를 설치했습니다. 로그에 다음과 같은 비추천(deprecation) 경고가 표시됩니다.
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.3.0/gems/actionpack-7.2.2.1/lib/action_controller/metal/basic_implicit_render.rb:8:in `send_action`
현재 최신 버전인 Discourse 3.5.0.beta3-dev를 사용 중인데, 비추천 처리가 될 버전 정보가 잘못되어 있습니다. 하지만 언제든 깨질 수 있다는 점이 여전히 걱정됩니다.
증상
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`
서버에서 확인한 사항
/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 기반의 최신 재빌드 후에도 비추천 경고가 여전히 유지되고 있습니다.
결론
이 경고는 여전히 비추천된 email 파라미터로 원본 이메일을 전송하고, 엔드포인트가 현재 기대하는 base64 엄격 인코딩된 email_encoded 파라미터를 사용하지 않는 mail-receiver의 현재 최신 릴리스에서 발생하고 있습니다. 제가 확인한 바로는, 실행 중인 release 이미지에서는 이 문제가 아직 해결되지 않았습니다.
이것은 비추천 경고일 뿐(에러가 아님) 이메일은 여전히 정상적으로 큐에 등록되고 처리되므로 사이트가 깨지지는 않지만, 이 경고가 사라지도록 mail-receiver 코드가 업데이트되기를 바랍니다. 문제가 되는 코드는 discourse_mail_receiver.rb에 있으며, email_encoded 대신 email 파라미터를 게시하고 있습니다.
이 수정 사항이 mail-receiver release 이미지에 배포될 예정인 일정이 있습니까?
mail-receiver는 여전히 비추천되는 email 파라미터를 사용하여 원시 메시지를 게시하고 있었습니다. 이 PR은 Discourse의 /admin/email/handle_mail 엔드포인트에서 요구하듯이, 대신 email_encoded: Base64.strict_encode64(...)를 사용하여 메시지를 보내도록 변경합니다.
또한 email_encoded가 제출되고 비추천되는 email 파라미터가 더 이상 사용되지 않는지 확인하는 회귀 테스트를 추가했습니다.