Changeset 101
- Timestamp:
- 10/04/08 08:29:34 (3 months ago)
- Location:
- trunk
- Files:
-
- 3 modified
-
tests/test_message.py (modified) (1 diff)
-
turbomail/message.py (modified) (1 diff)
-
turbomail/util.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/test_message.py
r100 r101 59 59 self.failUnless(subject_string in msg_string) 60 60 61 61 def test_from_with_umlaut(self): 62 from_name = u"Karl MÃŒller" 63 from_email = u"karl.mueller@example.com" 64 65 self.message.author = [(from_name, from_email)] 66 self.message.encoding = "ISO-8859-1" 67 68 msg_string = str(self.message) 69 encoded_name = str(Header(from_name, "ISO-8859-1")) 70 from_string = "From: %s <%s>" % (encoded_name, from_email) 71 self.failUnless(from_string in msg_string) -
trunk/turbomail/message.py
r100 r101 219 219 if isinstance(header[1], unicode): 220 220 header[1] = Header(header[1], self.encoding) 221 elif isinstance(header[1], AddressList): 222 header[1] = header[1].encode(self.encoding) 221 223 header[1] = str(header[1]) 222 224 message.add_header(*header) -
trunk/turbomail/util.py
r92 r101 55 55 56 56 def __str__(self): 57 return self.encode() 58 59 def encode(self, encoding="ascii"): 57 60 assert self.address, "You must specify an address." 58 59 return formataddr((self.name, self.address)).replace("\n", "") 60 61 name_string = self.name 62 if isinstance(name_string, unicode): 63 name_string = str(Header(name_string, encoding)) 64 return formataddr((name_string, self.address)).replace("\n", "") 61 65 62 66 63 67 class AddressList(list): 64 def __init__(self, addresses=[] ):68 def __init__(self, addresses=[], encoding=None): 65 69 super(AddressList, self).__init__() 66 70 71 self.encoding = encoding 67 72 if isinstance(addresses, (basestring, tuple)): 68 73 addresses = [addresses] … … 76 81 77 82 def __str__(self): 78 return ",\n ".join([str(i) for i in self]) 83 return self.encode(self.encoding) 84 85 def encode(self, encoding="ascii"): 86 addresses = [] 87 for address in self: 88 addresses.append(address.encode(encoding)) 89 return ",\n ".join(addresses) 79 90 80 91 def __setitem__(self, k, value):
