Skip to main content
 首页 » 编程设计

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

2024年08月16日48tintown

我尝试用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)) 
))