首页 > 代码库 > python常用模块email----从原始邮件中提取邮件头信息
python常用模块email----从原始邮件中提取邮件头信息
email.parser.
Parser()的parsestr()和parse()方法都可以用来从原始邮件文件中提取邮件头信息。这两个方法的区别就parsestr处理的是字符串对象,parse处理的是文件对象。
让我们通过两个例子来了解这两个方法的使用。先来看一封邮件的原始信息的一部分:
cat /tmp/email_test1.txt date: Wed, 16 Nov 2016 16:04:44 +0800 From: 3456789 <3456789@qq.com> To: 1234567 <1234567@qq.com> Cc: 23456780 <23456780@qq.com> Reply-To: 3456789 <3456789@qq.com> Subject: email test! X-Priority: 3 X-Has-Attach: no X-Mailer: Foxmail 7.0.1.91[cn] Mime-Version: 1.0 Message-ID: <201611161604440653250@qq.com> Content-Type: multipart/alternative; boundary="----=_001_NextPart245273401224_=----"
例1:通过parsestr提取邮件头
#!/usr/bin/python import os from email.parser import Parser def read_mail(path): if os.path.exists(path): with open(path) as fp: email=fp.read() return email else: print "file not exist!" raw_email=read_mail(‘/tmp/email_test1.txt‘) #将邮件读到一个字符串里面 headers =Parser().parsestr(raw_email) #经过parsestr处理过后生成一个字典 print ‘Cc: %s‘ % headers[‘Cc‘] print ‘To: %s‘ % headers[‘to‘] print ‘From: %s‘ % headers[‘from‘] print ‘Subject: %s‘ % headers[‘subject‘]
例2:通过parse提取邮件关
#!/usr/bin/python from email.parser import Parser headers = Parser().parse(open(‘/tmp/email_test1.txt‘, ‘r‘)) print ‘Cc: %s‘ % headers[‘Cc‘] print ‘To: %s‘ % headers[‘to‘] print ‘From: %s‘ % headers[‘from‘] print ‘Subject: %s‘ % headers[‘subject‘]
两个例子的返回的结果都是一样的:
Cc: 23456780 <23456780@qq.com> To: 1234567 <1234567@qq.com> From: 3456789 <3456789@qq.com> Subject: email test!
这样我们就完成了邮件头部信息的提取!
本文出自 “一直在路上” 博客,请务必保留此出处http://chenql.blog.51cto.com/8732050/1873770
python常用模块email----从原始邮件中提取邮件头信息
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。