本帖最后由 wavezhou 于 2025-3-24 11:23 编辑
使用示例1,即按limit参数设置获取最新n份邮件,limit参数是10,就获取最新收到的10封邮件;
使用示例2,可指定只收取某个发件人发来的邮件,也可按标题关键字模糊匹配,还可按附件的文件类型做匹配(传入的文件类型数组,附件文件类型被包含在数组中的都能匹配到)。当然,3个查询条件同时都填上的话,就是做3个查询条件的交集查询。
# 使用示例1
# downloader = EmailAttachmentDownloader(
# email_address="abcd123456@163.com",
# password="123456",
# save_path="./downloaded_attachments"
# )
#
# # 连接到邮箱
# downloader.connect()
# # 搜索最近10封邮件
# email_ids = downloader.search_emails(limit=10)
#
# # 下载所有邮件的附件
# for email_id in email_ids:
# email_info = downloader.get_email_info(email_id)
# if email_info and email_info["has_attachments"]:
# print(f"下载邮件附件: {email_info['subject']}")
# downloader.download_attachments(email_id)
# # 断开连接
# downloader.disconnect()
# 使用示例2
with EmailAttachmentDownloader(
email_address="abcd123456@163.com",
password="123456",
save_path="./documents"
) as downloader:
# downloader.download_attachments_by_criteria(
# search_criteria='(FROM "12345678@qq.com" SUBJECT "测试")',
# search_criteria='(FROM "12345678@qq.com")',
# search_criteria='SUBJECT "发票"',
# search_criteria='SUBJECT "测试"',
# filename_filter=['.xlsx', 'xls', '.zip'], # 支持多种文件类型
# start_date='2024-08-01',
# strict_subject_match=True,
# end_date='2022-08-01',
#)
# # 只提供开始日期,无结束日期限制;或只提供结束日期,无开始日期;或起止日期都提供
downloader.download_attachments_by_criteria(
#search_criteria='FROM "abc@china.com.cn"',
search_criteria='SUBJECT "管理计划"',
filename_filter=['.docx', '.xlsx'],
start_date='2025-01-01',
)
password是授权码,在相应邮箱客户端获得。代码详情见附件,注释也很详尽
|