Download attachments received for the last 5 days in Python(下载最近5天收到的附件(使用Python)
本文介绍了下载最近5天收到的附件(使用Python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我还是个新手。这是我正在使用的工作代码,但我如何添加一个筛选器,以便只扫描和下载最近5天的电子邮件附件。
提前谢谢!
import os
from imbox import Imbox # pip install imbox
import traceback
import datetime
host = "imap.gmail.com"
username = "myemail@gmail.com"
password = '*******'
download_folder = "my/existing/dir"
if not os.path.isdir(download_folder):
os.makedirs(download_folder, exist_ok=True)
mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False)
# messages = mail.messages() # defaults to inbox
for (uid, message) in messages:
mail.mark_seen(uid) # optional, mark message as read
for idx, attachment in enumerate(message.attachments):
try:
att_fn = attachment.get('filename')
download_path = f"{download_folder}/{att_fn}"
print(download_path)
with open(download_path, "wb") as fp:
fp.write(attachment.get('content').read())
except:
pass
print(traceback.print_exc())
mail.logout()
推荐答案
无法在IMAP中按附件直接搜索。(*BODYSTRUCTURE功能可以获取结构。)
您可以:
- 获取最近5天的电子邮件
- 分析其附件
编码:
import datetime
from imap_tools import MailBox, A
with MailBox('imap.mail.com').login('test@mail.com', 'pwd') as mailbox:
for msg in mailbox.fetch(A(date_gte=datetime.date.today() - datetime.timedelta(days=5))):
print(msg.uid, msg.subject)
for att in msg.attachments:
print(att.filename, len(att.payload))
https://github.com/ikvk/imap_tools 我是作者。
这篇关于下载最近5天收到的附件(使用Python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:下载最近5天收到的附件(使用Python
基础教程推荐
猜你喜欢
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01