使用Exchangelib筛选器筛选特定域的电子邮件

2024-05-20 01:51:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Exchangelib库处理电子邮件。我想在从exchange server读取电子邮件时应用筛选器:

  1. 排除特定域中的电子邮件,例如,如果电子邮件以@gmail.com结尾,则排除所有电子邮件
  2. 排除私人电子邮件(要排除私人电子邮件,我们可以选择标识-sensitivity=private

下面是我正在使用的代码片段。 您能帮我们解决过滤器问题吗

from exchangelib import Credentials, Account , DELEGATE , Q

credentials = Credentials('test@example.com', 'topsecret')
account = Account('john@example.com', credentials=credentials, autodiscover=True, access_type  = DELEGATE)

query = Q(sender_contains = '@gmail.com')
recent_mails = account.inbox.filter(~query).order_by('-datetime_received')[:100] 

for item in recent_mails:
    print(item.subject, item.sender, item.datetime_received)

我也尝试过排除选项:

recent_mails = account.inbox.exclude(query)

Tags: comexample电子邮件私人accountitemquerygmail