python exchangelib 如何在特定日期范围内获取电子邮件?

标签 python exchangelib

我尝试用exchangelib提取组邮箱进行分析,想在一个日期范围内提取。
尝试使用过滤器功能,但似乎只适用于日历,请问您是否有电子邮件示例? 谢谢大家。

最佳答案

您需要过滤消息项上可用的日期时间字段。 Message.FIELDS 包含 Message 类中的所有可用字段。您可以使用以下内容列出所有日期时间字段:

>>> [f.name for f in Message.FIELDS if f.value_cls == EWSDateTime]
['datetime_received', 'datetime_sent', 'datetime_created', 'reminder_due_by', 'last_modified_time']

README显示了使用 .filter(start__range(x, y)) 的示例,但 start 字段仅在 CalendarItem 对象上可用。相反,使用例如datetime_received过滤Message对象:

tz = EWSTimeZone.localzone()
emails_from_2017 = account.inbox.filter(datetime_received__range=(
    tz.localize(EWSDateTime(2017, 1, 1)),
    tz.localize(EWSDateTime(2018, 1, 1))
))

关于python exchangelib 如何在特定日期范围内获取电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48742357/

相关文章:

python - Exchangelib:将电子邮件从收件箱移动到文件夹

python - 如何使用 Exchangelib 保存附件

python - 使用 os.walk 避免无限递归

python - 在 Python 的列表列表中查找第一个元素的总和

python - Python 中的多处理具有大量进程但限制 cpu 数量

python - Exchangelib OAUTH 身份验证 NonExistentMailbox 错误

python - 如何在 Python 中连接文本文件?

python - 递归打印具有自定义间距的金字塔图案

Python交换库: check if item is a message or not