mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 09:26:54 -06:00
handle emails with localized headers 😠
This commit is contained in:
parent
6b4f265a8c
commit
185dcb2ca1
@ -239,6 +239,8 @@ module Email
|
||||
end
|
||||
|
||||
def parse_from_field(mail)
|
||||
return unless mail[:from]
|
||||
|
||||
if mail[:from].errors.blank?
|
||||
mail[:from].address_list.addresses.each do |address_field|
|
||||
address_field.decoded
|
||||
|
@ -383,37 +383,46 @@ describe Email::Receiver do
|
||||
expect(Post.last.raw).to match(/discourse\.rb/)
|
||||
end
|
||||
|
||||
it "handles forwarded emails" do
|
||||
SiteSetting.enable_forwarded_emails = true
|
||||
expect { process(:forwarded_email_1) }.to change(Topic, :count)
|
||||
context "with forwarded emails enabled" do
|
||||
before { SiteSetting.enable_forwarded_emails = true }
|
||||
|
||||
forwarded_post, last_post = *Post.last(2)
|
||||
it "handles forwarded emails" do
|
||||
expect { process(:forwarded_email_1) }.to change(Topic, :count)
|
||||
|
||||
expect(forwarded_post.user.email).to eq("some@one.com")
|
||||
expect(last_post.user.email).to eq("ba@bar.com")
|
||||
forwarded_post, last_post = *Post.last(2)
|
||||
|
||||
expect(forwarded_post.raw).to match(/XoXo/)
|
||||
expect(last_post.raw).to match(/can you have a look at this email below/)
|
||||
expect(forwarded_post.user.email).to eq("some@one.com")
|
||||
expect(last_post.user.email).to eq("ba@bar.com")
|
||||
|
||||
expect(last_post.post_type).to eq(Post.types[:regular])
|
||||
end
|
||||
expect(forwarded_post.raw).to match(/XoXo/)
|
||||
expect(last_post.raw).to match(/can you have a look at this email below/)
|
||||
|
||||
it "handles weirdly forwarded emails" do
|
||||
group.add(Fabricate(:user, email: "ba@bar.com"))
|
||||
group.save
|
||||
expect(last_post.post_type).to eq(Post.types[:regular])
|
||||
end
|
||||
|
||||
SiteSetting.enable_forwarded_emails = true
|
||||
expect { process(:forwarded_email_2) }.to change(Topic, :count)
|
||||
it "handles weirdly forwarded emails" do
|
||||
group.add(Fabricate(:user, email: "ba@bar.com"))
|
||||
group.save
|
||||
|
||||
forwarded_post, last_post = *Post.last(2)
|
||||
SiteSetting.enable_forwarded_emails = true
|
||||
expect { process(:forwarded_email_2) }.to change(Topic, :count)
|
||||
|
||||
expect(forwarded_post.user.email).to eq("some@one.com")
|
||||
expect(last_post.user.email).to eq("ba@bar.com")
|
||||
forwarded_post, last_post = *Post.last(2)
|
||||
|
||||
expect(forwarded_post.raw).to match(/XoXo/)
|
||||
expect(last_post.raw).to match(/can you have a look at this email below/)
|
||||
expect(forwarded_post.user.email).to eq("some@one.com")
|
||||
expect(last_post.user.email).to eq("ba@bar.com")
|
||||
|
||||
expect(forwarded_post.raw).to match(/XoXo/)
|
||||
expect(last_post.raw).to match(/can you have a look at this email below/)
|
||||
|
||||
expect(last_post.post_type).to eq(Post.types[:whisper])
|
||||
end
|
||||
|
||||
# Who thought this was a good idea?!
|
||||
it "doesn't blow up with localized email headers" do
|
||||
expect { process(:forwarded_email_3) }.to change(Topic, :count)
|
||||
end
|
||||
|
||||
expect(last_post.post_type).to eq(Post.types[:whisper])
|
||||
end
|
||||
|
||||
end
|
||||
|
18
spec/fixtures/emails/forwarded_email_3.eml
vendored
Normal file
18
spec/fixtures/emails/forwarded_email_3.eml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
Message-ID: <60@foo.bar.mail>
|
||||
From: Ba Bar <ba@bar.com>
|
||||
To: Team <team@bar.com>
|
||||
Date: Mon, 9 Dec 2016 13:37:42 +0100
|
||||
Subject: Fwd: Ça Discourse ?
|
||||
|
||||
@team, can you have a look at this email below?
|
||||
|
||||
Objet: Ça Discourse ?
|
||||
Date: 2017-01-04 11:27
|
||||
De: Un Français <un@francais.fr>
|
||||
À: ba@bar.com
|
||||
|
||||
Bonjour,
|
||||
|
||||
Ça Discourse bien aujourd'hui ?
|
||||
|
||||
Bises
|
Loading…
Reference in New Issue
Block a user