mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FIX: mark forwarded email as read by the forwarder
FIX: 'Re:' prefix is mostly used for replies and not forwarded emails
This commit is contained in:
parent
51386bd339
commit
98c62bccb5
@ -370,7 +370,7 @@ module Email
|
|||||||
end
|
end
|
||||||
|
|
||||||
def has_been_forwarded?
|
def has_been_forwarded?
|
||||||
subject[/^[[:blank]]*(re|fwd?)[[:blank]]?:/i] && embedded_email_raw.present?
|
subject[/^[[:blank]]*(fwd?|tr)[[:blank]]?:/i] && embedded_email_raw.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def embedded_email_raw
|
def embedded_email_raw
|
||||||
@ -381,7 +381,7 @@ module Email
|
|||||||
end
|
end
|
||||||
|
|
||||||
def process_forwarded_email(destination, user)
|
def process_forwarded_email(destination, user)
|
||||||
embedded = Mail.new(@embedded_email_raw)
|
embedded = Mail.new(embedded_email_raw)
|
||||||
email, display_name = parse_from_field(embedded)
|
email, display_name = parse_from_field(embedded)
|
||||||
|
|
||||||
return false if email.blank? || !email["@"]
|
return false if email.blank? || !email["@"]
|
||||||
@ -419,7 +419,12 @@ module Email
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
if post && post.topic && @before_embedded.present?
|
if post&.topic
|
||||||
|
# mark post as seen for the forwarder
|
||||||
|
PostTiming.record_timing(user_id: user.id, topic_id: post.topic_id, post_number: post.post_number, msecs: 5000)
|
||||||
|
|
||||||
|
# create reply when available
|
||||||
|
if @before_embedded.present?
|
||||||
post_type = Post.types[:regular]
|
post_type = Post.types[:regular]
|
||||||
post_type = Post.types[:whisper] if post.topic.private_message? && group.usernames[user.username]
|
post_type = Post.types[:whisper] if post.topic.private_message? && group.usernames[user.username]
|
||||||
|
|
||||||
@ -429,6 +434,7 @@ module Email
|
|||||||
topic: post.topic,
|
topic: post.topic,
|
||||||
post_type: post_type)
|
post_type: post_type)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
true
|
true
|
||||||
end
|
end
|
||||||
@ -579,8 +585,7 @@ module Email
|
|||||||
end
|
end
|
||||||
|
|
||||||
user = options.delete(:user)
|
user = options.delete(:user)
|
||||||
manager = NewPostManager.new(user, options)
|
result = NewPostManager.new(user, options).perform
|
||||||
result = manager.perform
|
|
||||||
|
|
||||||
raise InvalidPost, result.errors.full_messages.join("\n") if result.errors.any?
|
raise InvalidPost, result.errors.full_messages.join("\n") if result.errors.any?
|
||||||
|
|
||||||
|
2
spec/fixtures/emails/forwarded_email_2.eml
vendored
2
spec/fixtures/emails/forwarded_email_2.eml
vendored
@ -2,7 +2,7 @@ Message-ID: <59@foo.bar.mail>
|
|||||||
From: Ba Bar <ba@bar.com>
|
From: Ba Bar <ba@bar.com>
|
||||||
To: Team <team@bar.com>
|
To: Team <team@bar.com>
|
||||||
Date: Mon, 1 Dec 2016 13:37:42 +0100
|
Date: Mon, 1 Dec 2016 13:37:42 +0100
|
||||||
Subject: Re: Discoursing much?
|
Subject: Tr: Discoursing much?
|
||||||
|
|
||||||
@team, can you have a look at this email below?
|
@team, can you have a look at this email below?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user