python 解析邮件文件eml提取邮件内容及附件
要解析邮件文件eml,可以使用Python的email库。以下是一个示例代码,可以提取邮件的内容和附件:
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文件的路径。这段代码会打印出邮件的发件人、收件人、主题、正文,以及保存附件到本地文件
原文地址: https://www.cveoy.top/t/topic/hy6t 著作权归作者所有。请勿转载和采集!