详解python实现邮件解析的⽅法
⽬录
前⾔
⼀、安装
⼆、代码实现
1.邮件头
2.邮件正⽂
3.邮件附件
总结
前⾔
如何通过python实现邮件解析?邮件的格式⼗分复杂,主要是mime协议,本⽂主要是从实现出发,具体原理可以⾃⾏研究。⼀、安装
通过mailgun开源的Flanker库实现邮件解析。该库包含了邮件地址解析和邮件mime格式解析。
输⼊以下命令:
pip install flanker
⼆、代码实现
1.邮件头
def emlAnayalyse(path):
with open(path, 'rb') as fhdl:
python安装教程非常详细raw_email = ad()
eml = mime.from_string(raw_email)
subject = eml.subject
eml_header_from = ('From')
eml_header_to = ('To')
eml_header_cc=('Cc')
eml_time = ('Date')
# get_annex(eml, '1')
eml_attachs=attachEml1(eml)
eml_body = contentEml(eml)
f = HTMLFilter()
f.feed(eml_body)
)
def main():
path='邮件名.eml'
emlAnayalyse(path)
if __name__ == "__main__":
main()
其中eml.header包含发送⼈,收件⼈,抄送⼈,时间等头信息。
2.邮件正⽂
# 邮件正⽂
def contentEml(eml):
# 判断是否为单部分
t_type.is_singlepart():
eml_body = eml.body
else:
eml_body = ''
for part in eml.parts:
# 判断是否是多部分
t_type.is_multipart():
eml_body = contentEml(part)
else:
t_type.main == 'text':
eml_body = part.body
return eml_body
通过回调函数,取出邮件正⽂部分
3.邮件附件
def attachEml1(eml):
for part in eml.parts:
if t_type.is_multipart():
name = part.detected_file_name
with open(name, 'wb') as annex:
annex.write(part.body)
通过content_type.is_multipart()判断是否为附件,将其保存下来。
总结
本篇⽂章就到这⾥了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论