Skip to content

Commit 6733fce

Browse files
author
Richard Jones
committed
bug introduced in the migration to the email package (issue 2550531)
1 parent 7987ffa commit 6733fce

File tree

4 files changed

+15
-12
lines changed

4 files changed

+15
-12
lines changed

CHANGES.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ are given with the most recent entry first.
55

66
Fixes:
77
- bug introduced into CVS export and view
8+
- bugs introduced in the migration to the email package (issue 2550531)
89

910

1011
2009-03-13 1.4.7 (r4202)

roundup/cgi/client.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from roundup.exceptions import *
1515
from roundup.cgi.exceptions import *
1616
from roundup.cgi.form_parser import FormParser
17-
from roundup.mailer import Mailer, MessageSendError
17+
from roundup.mailer import Mailer, MessageSendError, encode_quopri
1818
from roundup.cgi import accept_language
1919
from roundup import xmlrpc
2020

@@ -991,13 +991,13 @@ def renderContext(self):
991991
to = [self.mailer.config.ADMIN_EMAIL]
992992
subject = "Templating Error: %s" % exc_info[1]
993993
content = cgitb.pt_html()
994-
message, writer = self.mailer.get_standard_message(
995-
to, subject)
996-
writer.addheader('Content-Transfer-Encoding', 'quoted-printable')
997-
body = writer.startbody('text/html; charset=utf-8')
998-
content = StringIO(content)
999-
quopri.encode(content, body, 0)
1000-
self.mailer.smtp_send(to, message)
994+
message = self.mailer.get_standard_message(to, subject)
995+
# delete existing content-type headers
996+
del message['Content-type']
997+
message['Content-type'] = 'text/html; charset=utf-8'
998+
message.set_payload(content)
999+
encode_quopri(message)
1000+
self.mailer.smtp_send(to, str(message))
10011001
# Now report the error to the user.
10021002
return self._(error_message)
10031003
except:

roundup/mailer.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ def encode_quopri(msg):
2323
orig = msg.get_payload()
2424
encdata = quopri.encodestring(orig)
2525
msg.set_payload(encdata)
26+
del msg['Content-Transfer-Encoding']
2627
msg['Content-Transfer-Encoding'] = 'quoted-printable'
2728

2829
class Mailer:
@@ -55,7 +56,7 @@ def get_standard_message(self, to, subject, author=None, multipart=False):
5556
Subject and author are encoded using the EMAIL_CHARSET from the
5657
config (default UTF-8).
5758
58-
Returns a Message object and body part writer.
59+
Returns a Message object.
5960
'''
6061
# encode header values if they need to be
6162
charset = getattr(self.config, 'EMAIL_CHARSET', 'utf-8')
@@ -70,8 +71,8 @@ def get_standard_message(self, to, subject, author=None, multipart=False):
7071
message = MIMEMultipart()
7172
else:
7273
message = Message()
74+
message.set_type('text/plain')
7375
message.set_charset(charset)
74-
message['Content-Type'] = 'text/plain; charset="%s"'%charset
7576

7677
try:
7778
message['Subject'] = subject.encode('ascii')
@@ -115,6 +116,7 @@ def standard_message(self, to, subject, content, author=None):
115116
"""
116117
message = self.get_standard_message(to, subject, author)
117118
message.set_payload(content)
119+
encode_quopri(message)
118120
self.smtp_send(to, str(message))
119121

120122
def bounce_message(self, bounced_message, to, error,

roundup/roundupdb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -499,9 +499,9 @@ def send_message(self, nodeid, msgid, note, sendto, from_address=None,
499499
encode_quopri(message)
500500

501501
if first:
502-
mailer.smtp_send(sendto + bcc_sendto, message)
502+
mailer.smtp_send(sendto + bcc_sendto, str(message))
503503
else:
504-
mailer.smtp_send(sendto, message)
504+
mailer.smtp_send(sendto, str(message))
505505
first = False
506506

507507
def email_signature(self, nodeid, msgid):

0 commit comments

Comments
 (0)