summaryrefslogtreecommitdiff
path: root/umessage.py
diff options
context:
space:
mode:
authorSylvain <syt@logilab.fr>2006-10-31 14:48:39 +0100
committerSylvain <syt@logilab.fr>2006-10-31 14:48:39 +0100
commitda69367843a46f5fe0e418b252f4c4479fa3362b (patch)
tree916c9010b376d72b7f6ca05ef96c112d9bf83389 /umessage.py
parenta2a0e35a6ccdf63efe95a1ca6d179c335e13b718 (diff)
downloadlogilab-common-da69367843a46f5fe0e418b252f4c4479fa3362b.tar.gz
- new message_from_string function
- fixed get_payload encoding bug
Diffstat (limited to 'umessage.py')
-rw-r--r--umessage.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/umessage.py b/umessage.py
index a42cb40..b28663f 100644
--- a/umessage.py
+++ b/umessage.py
@@ -21,6 +21,12 @@ def message_from_file(fd):
except email.Errors.MessageParseError:
return ''
+def message_from_string(string):
+ try:
+ return UMessage(email.message_from_string(string))
+ except email.Errors.MessageParseError:
+ return ''
+
class UMessage:
"""Encapsulates an email.Message instance and returns only unicode objects"""
@@ -47,7 +53,8 @@ class UMessage:
return [UMessage(msg) for msg in payload]
if message.get_content_maintype() != 'text':
return payload
- return unicode(payload or '', message.get_charset() or 'iso-8859-15')
+ return unicode(payload or '', message.get_content_charset()
+ or 'iso-8859-15')
else:
payload = UMessage(message.get_payload(index, decode))
return payload