python 收email实例 -解决标题和正文的中文显示



第一部分: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值