第一部分:Header 的中文显示,主要用email库的头部解析文件,解析出的结果是元组组成的列表。注意实际内容的标识
#获取邮件的名称,主要是解决了中文问题,需要对头进行解码
subject = email.Header.decode_header(msg['Subject'])
email_subject=subject
email_item['subject'] =<span style="color:#FF0000;"> email_subject[0][0]</span>.decode('utf-8')
第二部分:对body的解码,没有对内容进行处理,一般解出来就是utf-8,如果不行,就用get_content_charset进行获取并解码
payload=msg.get_payload()
print msg.get_content_charset()
body=self.extract_body(payload)
<span style="color:#FF0000;"> email_body = base64.b64decode(body)</span>
补充:第二部分有一个邮件内容的处理函数,内容如下。
def extract_body(self,payload):
"""获取邮件内容关键字-针对邮件有多部分的情况,这个例子比较简单,只处理文本"""
if isinstance(payload,str):
return payload
else:
return '\n'.join([self.extract_body(part.get_payload()) for part in payload])
import base64
import imaplib
from email.mime.text import MIMEText
import email
其他解决中文的方法,unicode,
---------------------------------------------------------
print <span style="color:#FF0000;">unicode</span>(mail.get_payload('base64'),<span style="color:#FF0000;">type</span>)
参考文档:
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=575710