以下是一个简单的Python程序,可以处理指定邮件文件夹里的附件文件,下载并提取附件文件,使用附件文件名后面的信息作为新文件名,并将文件保存在电脑桌面:

import os
import email
import getpass
import imaplib
import urllib.request

# 邮件服务器信息
imap_server = 'imap.example.com'
imap_user = 'example@example.com'
imap_password = getpass.getpass()

# 邮件文件夹路径和附件保存路径
mail_folder = 'INBOX'
attachment_path = os.path.expanduser('~/Desktop')

# 连接到IMAP服务器并选择邮件文件夹
imap_conn = imaplib.IMAP4_SSL(imap_server)
imap_conn.login(imap_user, imap_password)
imap_conn.select(mail_folder)

# 搜索所有包含附件的邮件
typ, msg_ids = imap_conn.search(None, 'HAS', 'attachment')
msg_ids = msg_ids[0].split()

# 下载并保存附件文件
for msg_id in msg_ids:
    typ, msg_data = imap_conn.fetch(msg_id, '(RFC822)')
    msg = email.message_from_bytes(msg_data[0][1])

    for part in msg.walk():
        if part.get_content_maintype() == 'multipart':
            continue
        if part.get('Content-Disposition') is None:
            continue

        filename = part.get_filename()
        if filename is None:
            continue

        new_filename = filename.split(':')[-1].strip()
        new_path = os.path.join(attachment_path, new_filename)

        if not os.path.exists(new_path):
            with open(new_path, 'wb') as f:
                f.write(part.get_payload(decode=True))
                print('Downloaded attachment:', filename)

# 关闭IMAP连接
imap_conn.close()
imap_conn.logout()

运行程序后,将会提示输入IMAP账号密码。然后程序会连接到IMAP服务器并选择指定的邮件文件夹,搜索所有包含附件的邮件,并将附件文件下载并保存在桌面。附件文件名会使用附件文件名后面的信息作为新文件名。如果附件文件已经存在于桌面,则不会重复下载。

注意:本程序仅供学习和参考用途,请勿用于非法用途。使用本程序可能会涉及到隐私和安全问题,请自行评估风险并谨慎使用


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

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