Mercurial > p > roundup > code
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. |
