diff options
author | Lars Wirzenius <liw@iki.fi> | 2006-08-12 13:50:31 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@iki.fi> | 2006-08-12 13:50:31 +0300 |
commit | d7274d7ec9adf3186386a740572615660016f2ea (patch) | |
tree | 53170db8662f7cc5e55818c75a89cddc5cfc081d | |
parent | 1de6bf1f6fcbfd8a355d688c9ab64fafcd19b13f (diff) | |
download | eoc-d7274d7ec9adf3186386a740572615660016f2ea.tar.gz |
Avoid uncaught exceptions when mime encoding headers.
-rw-r--r-- | eoc.py | 46 |
1 files changed, 25 insertions, 21 deletions
@@ -491,28 +491,32 @@ class MailingList: return True def mime_encode_headers(self, text): - headers, body = text.split("\n\n", 1) - - list = [] - for line in headers.split("\n"): - if line[0].isspace(): - list[-1] += line - else: - list.append(line) - - headers = [] - for header in list: - if self.nice_7bit(header): - headers.append(header) - else: - if ": " in header: - name, content = header.split(": ", 1) + try: + headers, body = text.split("\n\n", 1) + + list = [] + for line in headers.split("\n"): + if line[0].isspace(): + list[-1] += line else: - name, content = header.split(":", 1) - hdr = email.Header.Header(content, "utf-8") - headers.append(name + ": " + hdr.encode()) - - return "\n".join(headers) + "\n\n" + body + list.append(line) + + headers = [] + for header in list: + if self.nice_7bit(header): + headers.append(header) + else: + if ": " in header: + name, content = header.split(": ", 1) + else: + name, content = header.split(":", 1) + hdr = email.Header.Header(content, "utf-8") + headers.append(name + ": " + hdr.encode()) + + return "\n".join(headers) + "\n\n" + body + except: + error("Cannot MIME encode header, using original ones, sorry") + return text def template(self, template_name, dict): lang = self.cp.get("list", "language") |