FIX: check we used the right encoding when parsing incoming emails
This commit is contained in:
parent
2ac38e9d05
commit
79329c8e85
|
@ -162,12 +162,13 @@ module Email
|
||||||
return fixed if fixed.present?
|
return fixed if fixed.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
# 2) default to UTF-8
|
# 2) try most used encodings
|
||||||
try_to_encode(string, "UTF-8")
|
try_to_encode(string, "UTF-8") || try_to_encode(string, "ISO-8859-1")
|
||||||
end
|
end
|
||||||
|
|
||||||
def try_to_encode(string, encoding)
|
def try_to_encode(string, encoding)
|
||||||
string.encode("UTF-8", encoding)
|
encoded = string.encode("UTF-8", encoding)
|
||||||
|
encoded.present? && encoded.valid_encoding? ? encoded : nil
|
||||||
rescue Encoding::InvalidByteSequenceError,
|
rescue Encoding::InvalidByteSequenceError,
|
||||||
Encoding::UndefinedConversionError,
|
Encoding::UndefinedConversionError,
|
||||||
Encoding::ConverterNotFoundError
|
Encoding::ConverterNotFoundError
|
||||||
|
|
Loading…
Reference in New Issue