From e4b9f72f9ed84e4cb7d95befe435768c33a295fd Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan <tgx_world@hotmail.com> Date: Thu, 27 Apr 2017 16:49:21 +0800 Subject: [PATCH] FIX: Force the right encoding when handling email. --- app/controllers/admin/email_controller.rb | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/email_controller.rb b/app/controllers/admin/email_controller.rb index df43323926c..455a22151e7 100644 --- a/app/controllers/admin/email_controller.rb +++ b/app/controllers/admin/email_controller.rb @@ -84,7 +84,20 @@ class Admin::EmailController < Admin::AdminController def handle_mail params.require(:email) - Jobs.enqueue(:process_email, mail: params[:email], retry_on_rate_limit: true) + retry_count = 0 + + begin + Jobs.enqueue(:process_email, mail: params[:email], retry_on_rate_limit: true) + rescue JSON::GeneratorError => e + if retry_count == 0 + params[:email] = params[:email].force_encoding('iso-8859-1').encode("UTF-8") + retry_count += 1 + retry + else + raise e + end + end + render plain: "email has been received and is queued for processing" end