Patch #11684 ยป mailTruncate.patch
app/models/mail_handler.rb | ||
---|---|---|
441 | 441 | |
442 | 442 |
# Removes the email body of text after the truncation configurations. |
443 | 443 |
def cleanup_body(body) |
444 |
delimiters = Setting.mail_handler_body_delimiters.to_s.split(/[\r\n]+/).reject(&:blank?).map {|s| Regexp.escape(s)} |
|
445 |
unless delimiters.empty? |
|
446 |
regex = Regexp.new("^[> ]*(#{ delimiters.join('|') })\s*[\r\n].*", Regexp::MULTILINE) |
|
447 |
body = body.gsub(regex, '') |
|
444 |
address = Setting.mail_from |
|
445 |
regex_arr = [ |
|
446 |
Regexp.new("From:\s*" + Regexp.escape(address), Regexp::IGNORECASE), |
|
447 |
Regexp.new("<" + Regexp.escape(address) + ">", Regexp::IGNORECASE), |
|
448 |
Regexp.new(Regexp.escape(address) + "\s+wrote:", Regexp::IGNORECASE), |
|
449 |
Regexp.new("^.*On.*(\n)?wrote:$", Regexp::IGNORECASE), |
|
450 |
Regexp.new("-+original\s+message-+\s*$", Regexp::IGNORECASE), |
|
451 |
Regexp.new("from:\s*$", Regexp::IGNORECASE) |
|
452 |
] |
|
453 |
body_length = body.length |
|
454 |
index = regex_arr.inject(body_length) do |min, regex| |
|
455 |
[(body.index(regex) || body_length), min].min |
|
448 | 456 |
end |
449 |
body.strip |
|
457 |
body[0, index].strip
|
|
450 | 458 |
end |
451 | 459 | |
452 | 460 |
def find_assignee_from_keyword(keyword, issue) |