mirror of
https://github.com/discourse/discourse.git
synced 2025-05-30 15:28:37 +08:00
FIX: Handle forwarded email quotes around Reply-To display name (#14384)
The display name can have quotes around it, which does not work with our current comparison of a from field (in this case Reply-To) and another header (X-Original-From), because we are not comparing the two values in the same way. This causes an issue where the commit here: b88d8c8 will not work properly; the forwarded email gets the From address instead of the Reply-To address as intended.
This commit is contained in:
@ -870,9 +870,9 @@ describe Email::Receiver do
|
||||
end
|
||||
|
||||
describe "reply-to header" do
|
||||
it "handles emails where there is a reply-to address, using that instead of the from address" do
|
||||
it "handles emails where there is a Reply-To address, using that instead of the from address, if X-Original-From is present" do
|
||||
SiteSetting.block_auto_generated_emails = false
|
||||
expect { process(:reply_to_different_to_from) }.to change(Topic, :count)
|
||||
expect { process(:reply_to_different_to_from) }.to change(Topic, :count).by(1)
|
||||
user = User.last
|
||||
incoming = IncomingEmail.find_by(message_id: "3848c3m98r439c348mc349@test.mailinglist.com")
|
||||
topic = incoming.topic
|
||||
@ -880,9 +880,19 @@ describe Email::Receiver do
|
||||
expect(user.email).to eq("arthurmorgan@reddeadtest.com")
|
||||
end
|
||||
|
||||
it "allows for quotes around the display name of the Reply-To address" do
|
||||
SiteSetting.block_auto_generated_emails = false
|
||||
expect { process(:reply_to_different_to_from_quoted_display_name) }.to change(Topic, :count).by(1)
|
||||
user = User.last
|
||||
incoming = IncomingEmail.find_by(message_id: "3848c3m98r439c348mc349@test.mailinglist.com")
|
||||
topic = incoming.topic
|
||||
expect(incoming.from_address).to eq("johnmarston@reddeadtest.com")
|
||||
expect(user.email).to eq("johnmarston@reddeadtest.com")
|
||||
end
|
||||
|
||||
it "does not use the reply-to address if an X-Original-From header is not present" do
|
||||
SiteSetting.block_auto_generated_emails = false
|
||||
expect { process(:reply_to_different_to_from_no_x_original) }.to change(Topic, :count)
|
||||
expect { process(:reply_to_different_to_from_no_x_original) }.to change(Topic, :count).by(1)
|
||||
user = User.last
|
||||
incoming = IncomingEmail.find_by(message_id: "3848c3m98r439c348mc349@test.mailinglist.com")
|
||||
topic = incoming.topic
|
||||
@ -892,7 +902,7 @@ describe Email::Receiver do
|
||||
|
||||
it "does not use the reply-to address if the X-Original-From header is different from the reply-to address" do
|
||||
SiteSetting.block_auto_generated_emails = false
|
||||
expect { process(:reply_to_different_to_from_x_original_different) }.to change(Topic, :count)
|
||||
expect { process(:reply_to_different_to_from_x_original_different) }.to change(Topic, :count).by(1)
|
||||
user = User.last
|
||||
incoming = IncomingEmail.find_by(message_id: "3848c3m98r439c348mc349@test.mailinglist.com")
|
||||
topic = incoming.topic
|
||||
|
Reference in New Issue
Block a user