html邮件解码

来源:互联网 发布:淘宝时尚的店铺 编辑:程序博客网 时间:2024/06/11 23:06

======================================================
注:本文源代码点此下载
======================================================

信体里可能有纯文本的plain和html两部分,也可能有附件。这里需要mime的知识,详细介绍可以从网上搜搜。

我这里就不说了,下面看看怎么解析的:

#-*- encoding: gb2312 -*-

import email

fp = open("xxx.eml", "r")

msg = email.message_from_file(fp)

# 循环信件中的每一个mime的数据块

for par in msg.walk():

if not par.is_multipart(): # 这里要判断是否是multipart,是的话,

#里面的数据是一个message 列表

name = par.get_param("name") #如果是附件,这里就会取出附件的文件名

if name:

#有附件

# 下面的三行代码只是为了解码象=?gbk?q?=cf=e0=c6=ac.rar?=这样的文件名

h = email.header.header(name)

dh = email.header.decode_header(h)

fname = dh[0][0]

print '附件名:', fname

data = par.get_payload(decode=true) # 解码出附件数据,然后存储到文件中

try:

f = open(fname, 'wb') #注意一定要用wb来打开文件,因为附件一般都是二进制文件

except:

print '附件名有非法字符,自动换一个'

f = open('aaaa', 'wb')

f.write(data)

f.close()

else:

#不是附件,是文本内容

print par.get_payload(decode=true) # 解码出文本内容,直接输出来就可以了。

print '+'*60 # 用来区别各个部分的输出

简单吧,并没有多少代码就可以实现复杂的解析邮件的功能!


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/