Benjamin Renard commited on 2012-04-20 14:32:46
Showing 1 changed files, with 19 additions and 3 deletions.
| ... | ... |
@@ -1,12 +1,13 @@ |
| 1 | 1 |
#!/usr/bin/python |
| 2 |
+# -*- coding: utf-8 -*- |
|
| 2 | 3 |
|
| 3 |
-import email |
|
| 4 | 4 |
import re |
| 5 | 5 |
import string |
| 6 |
-from email.MIMEText import MIMEText |
|
| 7 | 6 |
import smtplib |
| 8 | 7 |
import logging |
| 9 |
- |
|
| 8 |
+from email.MIMEText import MIMEText |
|
| 9 |
+import email |
|
| 10 |
+import email.header |
|
| 10 | 11 |
|
| 11 | 12 |
class MantisMail(object): |
| 12 | 13 |
|
| ... | ... |
@@ -54,6 +55,21 @@ class MantisMail(object): |
| 54 | 55 |
}) |
| 55 | 56 |
return attachments |
| 56 | 57 |
|
| 58 |
+ def decode(self,text, prefer_encoding=None): |
|
| 59 |
+ try_enc=['iso-8859-15', 'utf-8'] |
|
| 60 |
+ if prefer_encoding: |
|
| 61 |
+ try_enc.insert(0,prefer_encoding) |
|
| 62 |
+ for i in try_enc: |
|
| 63 |
+ try: |
|
| 64 |
+ return unicode(text.decode(i)) |
|
| 65 |
+ except Exception, e: |
|
| 66 |
+ continue |
|
| 67 |
+ return unicode(text.decode('utf-8', errors = 'replace'))
|
|
| 68 |
+ |
|
| 69 |
+ def decode_header(self,header): |
|
| 70 |
+ s=email.Header.decode_header(self.msg[header])[0] |
|
| 71 |
+ return self.decode(s[0],prefer_encoding=s[1]) |
|
| 72 |
+ |
|
| 57 | 73 |
def send(mail_from,to,subject,content,smtp_host='127.0.0.1',smtp_port=25): |
| 58 | 74 |
msg = MIMEText(content) |
| 59 | 75 |
msg['To'] = to |
| 60 | 76 |