Python解析邮件文件eml,提取邮件内容及附件
Python解析邮件文件eml,提取邮件内容及附件
使用Python的'email'库可以轻松解析邮件文件eml,提取邮件内容和附件信息,例如发件人、收件人、主题、正文等。以下是一个示例代码,展示如何使用Python提取邮件信息并保存附件到本地文件:
import os
import email
from email.header import decode_header
from email.utils import parseaddr
# 解析邮件文件
def parse_email(eml_file):
with open(eml_file, 'rb') as f:
msg = email.message_from_bytes(f.read())
# 提取发件人、收件人、主题等信息
from_addr = parseaddr(msg.get('From'))[1]
to_addr = parseaddr(msg.get('To'))[1]
subject = decode_header(msg.get('Subject'))[0][0]
print(f'From: {from_addr}')
print(f'To: {to_addr}')
print(f'Subject: {subject}')
# 提取邮件正文和附件
for part in msg.walk():
if part.get_content_type() == 'text/plain':
content = part.get_payload(decode=True).decode()
print(f'Content: {content}')
elif part.get_content_type() == 'application/octet-stream':
filename = decode_header(part.get_filename())[0][0]
data = part.get_payload(decode=True)
if data:
# 保存附件到本地文件
with open(filename, 'wb') as f:
f.write(data)
print(f'Saved attachment: {filename}')
# 解析邮件文件
eml_file = 'example.eml'
parse_email(eml_file)
请将eml_file变量设置为你要解析的eml文件的路径。这段代码会打印出邮件的发件人、收件人、主题、正文,以及将附件保存到本地文件。
原文地址: http://www.cveoy.top/t/topic/f3oq 著作权归作者所有。请勿转载和采集!