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文件的路径。这段代码会打印出邮件的发件人、收件人、主题、正文,以及将附件保存到本地文件。

Python解析邮件文件eml,提取邮件内容及附件

原文地址: http://www.cveoy.top/t/topic/f3oq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录