Index: roundup/cgi/client.py =================================================================== --- roundup/cgi/client.py (Revision 70407) +++ roundup/cgi/client.py (Arbeitskopie) @@ -14,7 +14,7 @@ from roundup.exceptions import * from roundup.cgi.exceptions import * from roundup.cgi.form_parser import FormParser -from roundup.mailer import Mailer, MessageSendError +from roundup.mailer import Mailer, MessageSendError, encode_quopri from roundup.cgi import accept_language from roundup import xmlrpc @@ -1029,13 +1029,13 @@ to = [self.mailer.config.ADMIN_EMAIL] subject = "Templating Error: %s" % exc_info[1] content = cgitb.pt_html() - message, writer = self.mailer.get_standard_message( - to, subject) - writer.addheader('Content-Transfer-Encoding', 'quoted-printable') - body = writer.startbody('text/html; charset=utf-8') - content = StringIO(content) - quopri.encode(content, body, 0) - self.mailer.smtp_send(to, message) + message = self.mailer.get_standard_message(to, subject) + # delete existing content-type headers + del message['Content-type'] + message['Content-type'] = 'text/html; charset=utf-8' + message.set_payload(content) + encode_quopri(message) + self.mailer.smtp_send(to, str(message)) # Now report the error to the user. return self._(error_message) except: Index: roundup/mailer.py =================================================================== --- roundup/mailer.py (Revision 70407) +++ roundup/mailer.py (Arbeitskopie) @@ -23,6 +23,7 @@ orig = msg.get_payload() encdata = quopri.encodestring(orig) msg.set_payload(encdata) + del msg['Content-Transfer-Encoding'] msg['Content-Transfer-Encoding'] = 'quoted-printable' class Mailer: @@ -55,7 +56,7 @@ Subject and author are encoded using the EMAIL_CHARSET from the config (default UTF-8). - Returns a Message object and body part writer. + Returns a Message object. ''' # encode header values if they need to be charset = getattr(self.config, 'EMAIL_CHARSET', 'utf-8') @@ -70,8 +71,8 @@ message = MIMEMultipart() else: message = Message() + message.set_type('text/plain') message.set_charset(charset) - message['Content-Type'] = 'text/plain; charset="%s"'%charset try: message['Subject'] = subject.encode('ascii') @@ -115,6 +116,7 @@ """ message = self.get_standard_message(to, subject, author) message.set_payload(content) + encode_quopri(message) self.smtp_send(to, str(message)) def bounce_message(self, bounced_message, to, error, Index: roundup/roundupdb.py =================================================================== --- roundup/roundupdb.py (Revision 70407) +++ roundup/roundupdb.py (Arbeitskopie) @@ -505,9 +505,9 @@ encode_quopri(message) if first: - mailer.smtp_send(sendto + bcc_sendto, message) + mailer.smtp_send(sendto + bcc_sendto, str(message)) else: - mailer.smtp_send(sendto, message) + mailer.smtp_send(sendto, str(message)) first = False def email_signature(self, nodeid, msgid):