aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-05-16 16:37:46 +0100
committerLouise Crow <louise.crow@gmail.com>2013-05-16 16:37:46 +0100
commite01774371ae7b4a5f9e3ef8ee0280453736bd4f2 (patch)
tree14446b9cde90ffcf33f922264783486702db5c39
parent6530624e51a5a7c6c6cc870cf1e9114c7da6396d (diff)
Only set original_charset when a charset has been defined for the mail part. Fixes #942.
-rw-r--r--lib/mail_handler/backends/mail_backend.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb
index f0dfc843c..6c213d370 100644
--- a/lib/mail_handler/backends/mail_backend.rb
+++ b/lib/mail_handler/backends/mail_backend.rb
@@ -169,8 +169,11 @@ module MailHandler
part.parts.each{ |sub_part| expand_and_normalize_parts(sub_part, parent_mail) }
else
part_filename = get_part_file_name(part)
- charset = part.charset # save this, because overwriting content_type also resets charset
-
+ if part.has_charset?
+ original_charset = part.charset # save this, because overwriting content_type also resets charset
+ else
+ original_charset = nil
+ end
# Don't allow nil content_types
if get_content_type(part).nil?
part.content_type = 'application/octet-stream'
@@ -189,7 +192,9 @@ module MailHandler
# Use standard content types for Word documents etc.
part.content_type = normalise_content_type(get_content_type(part))
decode_attached_part(part, parent_mail)
- part.charset = charset
+ if original_charset
+ part.charset = original_charset
+ end
end
end