Bug: Fixed quoted text parsing in incoming email (#1076)
* Bugfix: Fixed quoted text parsing in incoming email We had changed the support email from an account based only value to account based with fallback on global config and environment variable. Incoming email quoted text parsing was still based on account based support email. Changed this to utilize the newly introduced fallback values from global config and environment for parsing quoted text. * Bugfix: Added one more sender agnostic regex for quoted text parsing
This commit is contained in:
parent
8079bf50a0
commit
fcb7625616
1 changed files with 20 additions and 8 deletions
|
@ -85,18 +85,30 @@ class MailPresenter < SimpleDelegator
|
|||
end
|
||||
|
||||
def quoted_text_regexes
|
||||
sender_agnostic_regexes = [
|
||||
return sender_agnostic_regexes if @account.nil? || account_support_email.blank?
|
||||
|
||||
[
|
||||
Regexp.new("From:\s*" + Regexp.escape(account_support_email), Regexp::IGNORECASE),
|
||||
Regexp.new('<' + Regexp.escape(account_support_email) + '>', Regexp::IGNORECASE),
|
||||
Regexp.new(Regexp.escape(account_support_email) + "\s+wrote:", Regexp::IGNORECASE),
|
||||
Regexp.new('On(.*)' + Regexp.escape(account_support_email) + '(.*)wrote:', Regexp::IGNORECASE)
|
||||
] + sender_agnostic_regexes
|
||||
end
|
||||
|
||||
def sender_agnostic_regexes
|
||||
@sender_agnostic_regexes ||= [
|
||||
Regexp.new("^.*On.*(\n)?wrote:$", Regexp::IGNORECASE),
|
||||
Regexp.new('^.*On(.*)(.*)wrote:$', Regexp::IGNORECASE),
|
||||
Regexp.new("-+original\s+message-+\s*$", Regexp::IGNORECASE),
|
||||
Regexp.new("from:\s*$", Regexp::IGNORECASE)
|
||||
]
|
||||
return sender_agnostic_regexes if @account.nil? || @account.support_email.blank?
|
||||
end
|
||||
|
||||
[
|
||||
Regexp.new("From:\s*" + Regexp.escape(@account.support_email), Regexp::IGNORECASE),
|
||||
Regexp.new('<' + Regexp.escape(@account.support_email) + '>', Regexp::IGNORECASE),
|
||||
Regexp.new(Regexp.escape(@account.support_email) + "\s+wrote:", Regexp::IGNORECASE),
|
||||
Regexp.new('On(.*)' + Regexp.escape(@account.support_email) + '(.*)wrote:', Regexp::IGNORECASE)
|
||||
] + sender_agnostic_regexes
|
||||
def account_support_email
|
||||
@account_support_email ||= begin
|
||||
@account.support_email ||
|
||||
GlobalConfig.get('MAILER_SUPPORT_EMAIL')['MAILER_SUPPORT_EMAIL'] ||
|
||||
ENV.fetch('MAILER_SENDER_EMAIL', nil)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue