comparison roundup/mailer.py @ 4114:da682f38bad3

bug introduced in the migration to the email package (issue 2550531)
author Richard Jones <richard@users.sourceforge.net>
date Tue, 17 Mar 2009 22:56:38 +0000
parents 4b0ddce43d08
children 391fa482f995
comparison
equal deleted inserted replaced
4113:f4641359b892 4114:da682f38bad3
21 21
22 def encode_quopri(msg): 22 def encode_quopri(msg):
23 orig = msg.get_payload() 23 orig = msg.get_payload()
24 encdata = quopri.encodestring(orig) 24 encdata = quopri.encodestring(orig)
25 msg.set_payload(encdata) 25 msg.set_payload(encdata)
26 del msg['Content-Transfer-Encoding']
26 msg['Content-Transfer-Encoding'] = 'quoted-printable' 27 msg['Content-Transfer-Encoding'] = 'quoted-printable'
27 28
28 class Mailer: 29 class Mailer:
29 """Roundup-specific mail sending.""" 30 """Roundup-specific mail sending."""
30 def __init__(self, config): 31 def __init__(self, config):
53 "author" - (name, address) tuple or None for admin email 54 "author" - (name, address) tuple or None for admin email
54 55
55 Subject and author are encoded using the EMAIL_CHARSET from the 56 Subject and author are encoded using the EMAIL_CHARSET from the
56 config (default UTF-8). 57 config (default UTF-8).
57 58
58 Returns a Message object and body part writer. 59 Returns a Message object.
59 ''' 60 '''
60 # encode header values if they need to be 61 # encode header values if they need to be
61 charset = getattr(self.config, 'EMAIL_CHARSET', 'utf-8') 62 charset = getattr(self.config, 'EMAIL_CHARSET', 'utf-8')
62 tracker_name = unicode(self.config.TRACKER_NAME, 'utf-8') 63 tracker_name = unicode(self.config.TRACKER_NAME, 'utf-8')
63 if not author: 64 if not author:
68 69
69 if multipart: 70 if multipart:
70 message = MIMEMultipart() 71 message = MIMEMultipart()
71 else: 72 else:
72 message = Message() 73 message = Message()
74 message.set_type('text/plain')
73 message.set_charset(charset) 75 message.set_charset(charset)
74 message['Content-Type'] = 'text/plain; charset="%s"'%charset
75 76
76 try: 77 try:
77 message['Subject'] = subject.encode('ascii') 78 message['Subject'] = subject.encode('ascii')
78 except UnicodeError: 79 except UnicodeError:
79 message['Subject'] = Header(subject, charset) 80 message['Subject'] = Header(subject, charset)
113 114
114 All strings are assumed to be UTF-8 encoded. 115 All strings are assumed to be UTF-8 encoded.
115 """ 116 """
116 message = self.get_standard_message(to, subject, author) 117 message = self.get_standard_message(to, subject, author)
117 message.set_payload(content) 118 message.set_payload(content)
119 encode_quopri(message)
118 self.smtp_send(to, str(message)) 120 self.smtp_send(to, str(message))
119 121
120 def bounce_message(self, bounced_message, to, error, 122 def bounce_message(self, bounced_message, to, error,
121 subject='Failed issue tracker submission'): 123 subject='Failed issue tracker submission'):
122 """Bounce a message, attaching the failed submission. 124 """Bounce a message, attaching the failed submission.

Roundup Issue Tracker: http://roundup-tracker.org/