diff --git a/app/lib/email_processor.rb b/app/lib/email_processor.rb index 6d684227..5363403d 100644 --- a/app/lib/email_processor.rb +++ b/app/lib/email_processor.rb @@ -315,7 +315,6 @@ def clean_message(body) body&.gsub!(/\z/, "")&.gsub!(/\z/, "")&.gsub!(/^$\n\z/, "") # remove last unnecessary line break body&.gsub!(/\z/, "")&.gsub!(/\z/, "")&.gsub!(/^$\n\z/, "") # remove last unnecessary line break body&.gsub!("p.MsoNormal,p.MsoNoSpacing{margin:0}", "") # remove outlook styles - body&.gsub!("\0", '') # remove null characters body = body&.strip return unless body.present? @@ -325,17 +324,17 @@ def clean_message(body) def to_utf8(content) return unless content.present? + content = content&.gsub!("\0", '') # remove null characters begin detection = CharlockHolmes::EncodingDetector.detect(content) if detection[:confidence] > 95 - CharlockHolmes::Converter.convert content, detection[:encoding].gsub("IBM424_ltr", "UTF-8"), "UTF-8" - else - content + content = CharlockHolmes::Converter.convert content, detection[:encoding].gsub("IBM424_ltr", "UTF-8"), "UTF-8" end rescue - content end + + content end def clean_html_version(html) @@ -363,7 +362,6 @@ def clean_html_version(html) html&.gsub!(/
.+<\/div>/, "") # remove hidden divs / tracking pixels html&.gsub!(/src=\"cid\:\S+\"/, "src=\"\" style=\"display: none;\"") # remove attached images showing as broken inline images html&.gsub!("p.MsoNormal,p.MsoNoSpacing{margin:0}", "") # remove outlook styles - html&.gsub!("\0", '') # remove null characters empty_line_regex = /(
\n
\z)|(\z)|(\n\z)/ while html&.match?(empty_line_regex)