From b0369061e2e1f4e1389827dfafaa8b936d68de4f Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Wed, 28 Jan 2015 14:42:49 +0530 Subject: [PATCH] FIX: always set a default Message ID in email --- lib/email/sender.rb | 4 ++++ spec/components/email/sender_spec.rb | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/lib/email/sender.rb b/lib/email/sender.rb index 5d07c297a69..14f249f3362 100644 --- a/lib/email/sender.rb +++ b/lib/email/sender.rb @@ -70,6 +70,10 @@ module Email post_id = header_value('X-Discourse-Post-Id') reply_key = header_value('X-Discourse-Reply-Key') + # always set a default Message ID from the host + uuid = SecureRandom.uuid + @message.header['Message-ID'] = "<#{uuid}@#{host}>" + if topic_id.present? email_log.topic_id = topic_id diff --git a/spec/components/email/sender_spec.rb b/spec/components/email/sender_spec.rb index fc72c639c7f..e8d34b38f65 100644 --- a/spec/components/email/sender_spec.rb +++ b/spec/components/email/sender_spec.rb @@ -73,6 +73,11 @@ describe Email::Sender do Then { expect(message.header['List-ID']).to be_present } end + context "adds a Message-ID header even when topic id is not present" do + When { email_sender.send } + Then { expect(message.header['Message-ID']).to be_present } + end + context "adds Precedence header" do before do message.header['X-Discourse-Topic-Id'] = 5577