From 8f15febe23993b65b1a24679259dd4b45a336d01 Mon Sep 17 00:00:00 2001 From: Ross Poulton Date: Sat, 29 Jan 2011 06:22:18 +0000 Subject: [PATCH] Fix decoding of plain text emails in non-utf8 encodings such as koi8-r. Thanks to Sergey Kirillov for the patch, which fixes Github issue #9 and Google Code issue #150. --- helpdesk/management/commands/get_email.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/helpdesk/management/commands/get_email.py b/helpdesk/management/commands/get_email.py index 2b7cf7bf..d1f6553e 100644 --- a/helpdesk/management/commands/get_email.py +++ b/helpdesk/management/commands/get_email.py @@ -130,11 +130,10 @@ def process_queue(q, quiet=False): def decodeUnknown(charset, string): if not charset: try: - string = string.decode('utf-8') + return string.decode('utf-8') except: - string = string.decode('iso8859-1') - string = unicode(string) - return string + return string.decode('iso8859-1') + return unicode(string) def decode_mail_headers(string): decoded = decode_header(string) @@ -181,7 +180,7 @@ def ticket_from_message(message, queue, quiet): if part.get_content_maintype() == 'text' and name == None: if part.get_content_subtype() == 'plain': - body_plain = decodeUnknown(part.get_charset(), part.get_payload(decode=True)) + body_plain = decodeUnknown(part.get_content_charset(), part.get_payload(decode=True)) else: body_html = part.get_payload(decode=True) else: