gpt4 book ai didi

python - 通过 message_id 使用 exchangelib 获取电子邮件

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:28 27 4
gpt4 key购买 nike

我正在使用 exchangelib 维护一个应用程序。我需要能够将电子邮件移动到不同的文件夹,这完全可以使用 exchangelib。但是,我应该让我的客户有可能手动执行相同的操作。我想要做的是稍后查看将哪些电子邮件移动到哪个文件夹。所以我需要一个电子邮件跟踪 ID。所以可能的问题是:

  1. message_id 字段是否用作此唯一标识符?
  2. 似乎无法使用 message_id 批量获取电子邮件。这方面的最佳做法是什么?我可以通过调用 account.fetch 使用 item_idchangekey 获取电子邮件,但是,当用户在不同的文件夹中移动电子邮件时,它们会发生变化,而message_id 没有。

最佳答案

回复。 1,看来你已经发现了message_id移动项目时保持不变。我无法从 EWS 中找到关于此事实的任何硬性文档,因此请务必进行广泛的测试。

回复。 2、确实只能用account.fetchitem_id值。但是,有一些事情需要注意:

  1. 当您调用 item.move() , item.item_iditem.changekey属性更新到新位置,您可以存储该位置以供将来批量操作使用。参见 https://github.com/ecederstrand/exchangelib/blob/3a1def29951d26c8a1b7021c7582c3d118181140/exchangelib/items.py#L365
  2. 您仍然可以通过 message_id 批量获取首先翻译 message_iditem_id .这是一个 FindItem打电话然后一个GetItem打电话:

item_ids = account.inbox.filter(message_id__in=<your_message_ids>) \
.values_list('item_id', 'changekey')
bulk_items = account.fetch(item_ids)

你可能想要分块 <your_message_ids>项目所以 __in过滤器不会变得非常大。

关于python - 通过 message_id 使用 exchangelib 获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50103169/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com