From 8f46f991f3985009d4ea32434ae12828cc54303a Mon Sep 17 00:00:00 2001 From: Abdullah Samman Date: Wed, 5 Dec 2018 17:11:09 +0200 Subject: [PATCH] Fix quoted-printable subject question-mark not being encoded Fix #396 --- script/{mail_new_activity => mail_new_activity.rb} | 4 +++- spec/scripts/mail_new_activity_spec.rb | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) rename script/{mail_new_activity => mail_new_activity.rb} (98%) create mode 100644 spec/scripts/mail_new_activity_spec.rb diff --git a/script/mail_new_activity b/script/mail_new_activity.rb similarity index 98% rename from script/mail_new_activity rename to script/mail_new_activity.rb index b54b3313..e81fe24a 100755 --- a/script/mail_new_activity +++ b/script/mail_new_activity.rb @@ -12,7 +12,9 @@ class String s = [self].pack("M") if encoded_word - s.split(/\r?\n/).map {|l| "=?UTF-8?Q?" + l.gsub(/=*$/, "").tr(" ", "_") << "?=" }.join("\n\t") + s.split(/\r?\n/).map {|l| + "=?UTF-8?Q?" + l.gsub(/=*$/, "").gsub('?', '=3F').tr(" ", "_") << "?=" + }.join("\n\t") else s end diff --git a/spec/scripts/mail_new_activity_spec.rb b/spec/scripts/mail_new_activity_spec.rb new file mode 100644 index 00000000..01781566 --- /dev/null +++ b/spec/scripts/mail_new_activity_spec.rb @@ -0,0 +1,7 @@ +require_relative '../../script/mail_new_activity' + +describe 'EmailSender' do + it "encodes text as quoted printable" do + expect("Why Use Pointers?".quoted_printable(true)).to eq("=?UTF-8?Q?Why_Use_Pointers=3F?=") + end +end