用python 处理某个邮件文件夹里邮件附件下载并提取附件文件:11:后面信息作为附件新文件名并保存在电脑桌面
以下是一个简单的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 著作权归作者所有。请勿转载和采集!